由于想要用 gpt6.1-sol 所以给codex升级了一下。然后运行就出现了

Error: 拒绝访问。 (os error 5)
To work without the background server, rerun the same command with --no-daemon (including resume or fork and its arguments).

让deepseek搜索了一下说是:
拒绝访问 (os error 5) 错误,在 Windows 上通常意味着 Codex 在安装或启动后台服务(daemon)时,权限被系统拒绝了。

解决:

不降级的方式:

  1. 使用 --no-daemon 模式:在命令后加上 --no-daemon 参数,这会绕过后台服务,让 Codex 直接在当前终端运行。缺点是CLI 会明显变慢,因为失去了后台服务的性能优化。
  2. 关闭后台服务自启:编辑配置文件 %USERPROFILE%\.codex\config.toml,添加以下内容,效果与上一种类似:
[features]
daemon_auto_start = false

降级的方式:

从社区反馈来看,这个问题主要是由 v0.157.0 及之后版本引入的新后台守护进程(daemon)机制导致的。因此,最直接有效的办法就是降级。

社区普遍验证 v0.156.1 是一个稳定可用的版本。

如果通过 npm 安装,先卸载再安装指定版本:

npm uninstall -g @openai/codex
npm install -g @openai/[email protected]

如果使用的是 独立安装程序,可以通过设置环境变量来指定版本:

$env:CODEX_RELEASE="0.156.1"
irm https://chatgpt.com/codex/install.ps1 | iex

清理残留:降级后如果问题依旧,可以尝试删除 %USERPROFILE%\.codex\packages\app-server-daemon 目录,让 Codex 重新初始化。

p.s.
楼主是使用的修改配置文件添加 daemon_auto_start = false ,成功解决。但是这样貌似就不会有守护进程的新特性了,不过从逻辑上来说要是降级了同样也没有这个特性。所以采用了简单的解决方式。对于降级的方式没有尝试,仅作记录。

问题:
在使用pip安装torch时

pip3 install torch torchvision --index-url https://download.pytorch.org/whl/cu126

出现

Fatal error in launcher: Unable to create process using '"D:\?????\.venv\Scripts\python.exe"  "D:\keyan\.venv\Scripts\pip3.exe" install torch torchvision --index-url https://download.pytorch.org/whl/cu126': ???????????

原因:
创建虚拟环境之后,如果给文件夹重命名再使用pip

给文件夹重命名的原因的本来用的中文路径,xarray读取nc文件的时候读取不到

问大肥鱼:
虚拟环境被移动或重命名过:Windows 上的 venv 虚拟环境不是“便携”的。创建时,pip.exe 里就写死了当时 python.exe 的绝对路径。一旦移动或重命名了虚拟环境所在的文件夹,这个路径就会失效。

路径中包含中文或空格:Windows 的启动器在处理包含中文字符或空格的路径时,可能会因为编码问题导致解析失败,出现 ????? 这样的乱码。

方法一:使用 python -m pip 临时绕过

通过 Python 解释器来调用 pip 模块,绕过损坏的 pip.exe 启动器

在当前的虚拟环境 (.venv) 下,直接运行以下命令安装 PyTorch:

python -m pip install torch torchvision --index-url https://download.pytorch.org/whl/cu126

方法二:强制重装 pip 以修复启动器

执行以下命令,让 pip 根据当前正确的路径重新生成启动器文件

python -m pip install --upgrade --force-reinstall pip

方法三:重建虚拟环境

使用如下脚本下载数据

import cdsapi
c = cdsapi.Client()

c.retrieve(
    'reanalysis-era5-pressure-levels',
    {
        'product_type': 'reanalysis',
        'variable': 'temperature',
        'pressure_level': '1000',
        'year': '2024',
        'month': '01',
        'day': ['01','02'],
        'time': ['00:00','06:00','12:00','18:00'],
        'format': 'netcdf',
        'area': [40,100,30,110],  # N,W,S,E 经纬度裁剪【重点,减少文件体积】
    },
    'era5_t2m_202401.nc')

运行时出现

requests.exceptions.HTTPError: 403 Client Error: Forbidden for url: https://cds.climate.copernicus.eu/api/retrieve/v1/processes/reanalysis-era5-pressure-levels/execution
required licences not accepted
Not all the required licences have been accepted; please visit https://cds.climate.copernicus.eu/datasets/reanalysis-era5-pressure-levels?tab=download#manage-licences to accept the required licence(s).

需要手动点击,相关数据的链接接受license

然后重新运行脚本就可以获取到数据了。

最近在看马原,看到哲学的部分,就想起了高中的一个朋友。现在也不联系了。这里管他叫做阿达。很高很壮。但是实际上心思细腻,这点存疑,不过确实应该是对哲学研究比较深刻,这点也存疑。具体是一个怎么样的人,我无法下定论,但是应该是一个好人。在我的记忆里,我们大部分的交谈都是从他的“锐评一下”开始的。这究竟是不是他的口头禅呢,我不清楚。其实大多数时候我是没有见解的,高中的时候。其实就算是现在也说不出什么所以然来,对于一些事情。

我虽然不是很羡慕那些在高中的时候就有着很清晰的价值观的人,但是依旧很佩服。至少在高中的时候那个妄自菲薄的年纪,他们是我某种程度上想要成为的人。不过我内核上其实依旧是一个得过且过的人,并不具备所谓的叛逆想法,对很多事情都是没有看法的。简单来说就是没有思想。还是高一的时候在一个班级关系比较密切。其实可能也仅仅是普通朋友,在现在的角度看来。不过我觉得加上时间以及当时的状态因素,至少在我心里,应该是好朋友。印象比较深刻的就是在运动会的时候,我们去了学校的初中部,那边没有人,至少在运动会的时候。然后在一个建筑物的最高层,用他的手机排了张合照。这张照片现在是否还在我的相册里面,我不是很清楚,换过了两次手机,应该是没有备份的。

后面高二分班,他选了文科班,我选了理科班。高一时候的班主任还是他的班主任。后续再见面只有在上自选的体育混班上的时候打羽球看到过他,一起打过一次球。他现在在上海,在一个假期很多的大学。和我其他的朋友联系紧密,我猜测可能是同样在上海,也有可能是因为高中时同样在文学社或是辩论社之类的社团。如果前面的猜测还有依据,那么后面的猜测就纯属猜测而已,我忘记了他高中时候的社团。也可能是动漫社?虽然我觉得他的日语水平让他对于日本文化会有所涉猎,但是也不能等同于对动漫也涉猎或者存有兴趣。我一直对他有印象,每次要去上海都会想到他,不过两次想去都因为各种原因没有见成。

我想,我会对哲学产生一点兴趣大概就是受他的影响。不过就算是在兴趣最浓厚的时候,也仅仅是翻过几页图书馆的书,没有接受过体系化的教育。至于基于哲学对生活,社会,个人的反思更是无从谈起。

我向往这样的人,但是我没有信仰。

到底是先有了生活,用生活去适配哲学的形状,还是用哲学的框架来捏出生活的样子,我可能更像是前者。高中的时候生活不复杂,简单的几句话就能大概的约束好生活,指导生活。但是现在我也不懂到底什么样的哲学是对的,我可能也着相了。信仰或许可以后天形成吧,但是我不懂有没有这种条件,也可能是还没有到该有信仰的年龄。我能做的仅仅是观察自己的生活,然后有个模糊的分类,在下次谈到某种深层次话题的时候可以用来自嘲。但是现在并没有会聊这种话题的人,在我周围。

很奇怪,在最不需要思考的时候,让我遇到了阿达,开始反思自己的信仰,有了模糊的意动,想来思考生活,却在最需要思考生活的时候失去了信仰。

现在偶尔发空间的时候阿达会在评论区留言复读。下次见不知道是什么时候了,再见面的时候大概也不会再聊这些了。

很久之前就想给 typecho开发主题,但是一直没有闲下来。
最近得闲就打算开这个坑。

要搭建一个typecho的开发环境。
其实就是下载typecho,然后解压,php启动就行。把要开发的主题放到user的theme文件夹里面,然后就可以开发了。
本地php启动一个服务器

php -S 127.0.0.1:8080 -t typecho

先是看default主题里面的文件
404.php 就是404页面
comments.php 就是评论页面
footer.php 就是页脚
functions.php 类似于 utils 有自己实现的函数,typecho的逻辑是启动主题,访问任意一个页面会自动加载这个文件,所以其他文件不用引用就可以使用里面定义的函数
header.php 是页头
page.php 是独立页面
post.php 是文章页面
sidebar.php 是侧边栏
index.php 就是首页,从分类,标签,作者点进去也是这个文件

三个css
grid.css 提供了grid布局
normalize.css 覆写了一些 html标签 的样式,让所有浏览器表现一致
style.css 就是一些样式css

先是看index.php,里面有一些typecho实现的函数
need()
示例:
$this->need('header.php');
作用是引入php文件。typecho封装了这个方法,就不用手动引入,然后可以自己判断路径,防止重复引入。

is()
示例:
$this->is('index')
用来判断是什么页面

_t()
里面的内容会自动翻译然后有返回值给到一个变量

_e()
里面的内容会自动翻译然后直接输出

<h3 class="archive-title"><?php $this->archiveTitle([
    'category' => _t('分类 %s 下的文章'),
    'search'   => _t('包含关键字 %s 的文章'),
    'tag'      => _t('标签 %s 下的文章'),
    'author'   => _t('%s 发布的文章')
], '', ''); ?></h3>

这个主要是archiveTitle函数,会根据不同的页面显示不同的内容。也就是说在没有定义category等对应的页面时,访问index页面会判断具体是什么页面然后输出对应的内容。

typecho的路由规则

页面类型优先其次兜底
首页index.php--
文章详情post.phpindex.php-
独立页面page.phpindex.php-
分类归档category.phparchive.phpindex.php
标签归档tag.phparchive.phpindex.php
日期归档archive.phpindex.php-
搜索页search.phpindex.php-
404 页404.phpindex.php-

如果要自定义页面,官方给的做法是使用自定义模板。
先是创建一个 新的php文件,随便叫什么名字
然后文件开头加上

<?php
/**
 * test
 *
 * @package custom
 */
?>

那个 test 是模板名称,随便改,@package custom 是为了告诉typecho这是个模板
之后可以后台新加一个独立页面,然后自定义模板处选择 这个 模板