

python 有 pyenv
node 有 nvm
java 啥时候才有一个方便的版本管理工具

python 有 pyenv
node 有 nvm
java 啥时候才有一个方便的版本管理工具
jdk可以使用sdkman
另外最近发现一个versionfox:https://github.com/version-fox/vfox,同时支持常见的node,python,java版本管理
jdk可以使用sdkman
另外最近发现一个versionfox:https://github.com/version-fox/vfox,同时支持常见的node,python,java版本管理
这个看起来很不错诶
哥哥写的太好了
deepin 23 RC2 pyenv install 3.12
安装python 3.12报错了
Python/fileutils.c: In function ‘_Py_closerange’:
Python/fileutils.c:2911:9: error: implicit declaration of function ‘close_range’ [-Werror=implicit-function-declaration]
2911 | if (close_range(first, last, 0) == 0) {
| ^~~~~~~~~~~
gcc -c -fno-strict-overflow -Wsign-compare -DNDEBUG -g -O3 -Wall -std=c11 -Wextra -Wno-unused-parameter -Wno-missing-field-initializers -Wstrict-prototypes -Werror=implicit-function-declaration -fvisibility=hidden -I./Include/internal -I. -I./Include -I/home/nagisa/.pyenv/versions/3.12.4/include -I/home/nagisa/.pyenv/versions/3.12.4/include -fPIC -DPy_BUILD_CORE -o Python/suggestions.o Python/suggestions.c
cc1: some warnings being treated as errors
make: *** [Makefile:2739:Python/fileutils.o] 错误 1
make: *** 正在等待未完成的任务....
看样子是close_range函数没有实现,又遇到这个问题的吗?
如何解决?
deepin 23 RC2 pyenv install 3.12
安装python 3.12报错了
Python/fileutils.c: In function ‘_Py_closerange’:
Python/fileutils.c:2911:9: error: implicit declaration of function ‘close_range’ [-Werror=implicit-function-declaration]
2911 | if (close_range(first, last, 0) == 0) {
| ^~~~~~~~~~~
gcc -c -fno-strict-overflow -Wsign-compare -DNDEBUG -g -O3 -Wall -std=c11 -Wextra -Wno-unused-parameter -Wno-missing-field-initializers -Wstrict-prototypes -Werror=implicit-function-declaration -fvisibility=hidden -I./Include/internal -I. -I./Include -I/home/nagisa/.pyenv/versions/3.12.4/include -I/home/nagisa/.pyenv/versions/3.12.4/include -fPIC -DPy_BUILD_CORE -o Python/suggestions.o Python/suggestions.c
cc1: some warnings being treated as errors
make: *** [Makefile:2739:Python/fileutils.o] 错误 1
make: *** 正在等待未完成的任务....
看样子是close_range函数没有实现,又遇到这个问题的吗?
如何解决?
这个好像是内核的问题,你试试降级内核
这个好像是内核的问题,你试试降级内核
我全新安装的23 RC2,这可咋降级
我全新安装的23 RC2,这可咋降级
apt list |grep linux-headers查询所有版本
,然后复制包名安装
sudo apt install linux-headers-xxxxx还有个linux-image-xxxxx这两个包版本号要一致
apt list |grep linux-headers查询所有版本
,然后复制包名安装
sudo apt install linux-headers-xxxxx还有个linux-image-xxxxx这两个包版本号要一致
感谢!
我尝试一下 linux-image-6.1.32-amd64-desktop-hwe
这个版本
感谢!
我尝试一下 linux-image-6.1.32-amd64-desktop-hwe
这个版本
看来这个版本的内核还是不行, :(
看来这个版本的内核还是不行, :(
不行的话换anaconda之类的虚拟环境吧
不行的话换anaconda之类的虚拟环境吧
不用了,现在我用venv了。
给大家参考:
python -m venv ~/VENV
vim ~/.bashrc
# 添加自动触发参数
pyvenv () {
source ~/VENV/bin/activate
}
# 下次要用时:
pyvenv
# 即可激活全局venv
好家伙,这是用了百度的AI搜索的教程吧,哈哈
好家伙,这是用了百度的AI搜索的教程吧,哈哈
pyenv的github地址里面就有
不用了,现在我用venv了。
给大家参考:
python -m venv ~/VENV
vim ~/.bashrc
# 添加自动触发参数
pyvenv () {
source ~/VENV/bin/activate
}
# 下次要用时:
pyvenv
# 即可激活全局venv
个人认为这个解决办法更灵活。
Popular Events
More
为什么使用pyenv:
1、看到很多linux新手想要修改或升级系统的python,这是非常非常非常不建议的高风险操作。python作为linux系统里的基础组件在不充分了解linux系统的情况下替换或升级很容易出现依赖python的各种系统组件出错进而导致整个系统出问题,尤其是新手很容易犯这个错误。正确的做法应该是系统的python版本交给系统自己升级,我们使用python虚拟环境。
2、pyenv可以很方便的安装和管理各种python版本
比如:
pyenv global [版本] # 很方便切换安装的各种Python版本
sudo apt install tk-dev libreadline-dev libbz2-dev libsqlite3-dev liblzma-dev libssl-dev libffi-dev zlib1g-dev #安装开发库,编译需要,否则可能报错 pyenv install [版本] #安装指定版本的Python
里面还有很多功能,这里不过多赘述,现在开始安装pyenv。
安装Pyenv
# 下载代码 git clone https://github.com/pyenv/pyenv.git ~/.pyenv # 添加bash共享库加速(属于可选操作,不执行也可以) cd ~/.pyenv && src/configure && make -C src # 配置环境变量到.bashrc echo 'export PYENV_ROOT="$HOME/.pyenv"' >> ~/.bashrc echo 'command -v pyenv >/dev/null || export PATH="$PYENV_ROOT/bin:$PATH"' >> ~/.bashrc echo 'eval "$(pyenv init -)"' >> ~/.bashrc # 配置国内Python镜像站,用于加速下载Python源代码(属于可选操作,不执行也可以) echo 'export PYTHON_BUILD_MIRROR_URL_SKIP_CHECKSUM=1' >> ~/.bashrc echo 'export PYTHON_BUILD_MIRROR_URL="https://registry.npmmirror.com/-/binary/python/"' >> ~/.bashrc # 使用source立即在当前终端生效,或重新打开一个终端自动生效 source ~/.bashrc # 现在试试执行pyenv命令 pyenv --help
现在自己尝试安装Python吧!
PS:
在Python的编译安装过程中,可能会出现一些报错提示缺少某些库,这个时候就需要通过apt命令安装对应的开发库,安装好库后需要重新编译安装Python才能生效,比如:
缺少lzma开发库

缺少openssl开发库
# 安装提示缺少的开发库,一般都是以"lib"开头"-dev"结尾 sudo apt install tk-dev libreadline-dev libbz2-dev libsqlite3-dev liblzma-dev libssl-dev libffi-dev #卸载已经安装的 pyenv uninstall 3.12.1 #重新编译安装 pyenv install 3.12.1