标签: pyenv

pyenv 配置:错误:C 编译器无法创建可执行文件

我正在尝试在运行 MacOS Big Sur v11.1 的笔记本电脑上安装多个版本的 Python。我最初通过此处的说明安装了 xcode 命令行工具、自制软件和 python

xcode-select --install

/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install.sh)"

brew install python

但是后来不由自主地将python升级到3.9,我需要回到3.7.9。所以我安装了 pyenv 并尝试按照此处的说明安装 python 3.7.9

brew install pyenv

pyenv install 3.7.9

但是我遇到了以下错误:

/var/folders/8n/ml0qwc091w9bhpszzxy9djl00000gn/T/python-build.20210118111111.56108 /usr/local/Cellar
/var/folders/8n/ml0qwc091w9bhpszzxy9djl00000gn/T/python-build.20210118111111.56108/Python-3.7.9 /var/folders/8n/ml0qwc091w9bhpszzxy9djl00000gn/T/python-build.20210118111111.56108 /usr/local/Cellar
checking build system type... x86_64-apple-darwin20.2.0
checking host system type... x86_64-apple-darwin20.2.0
checking for python3.7... no
checking for python3... python3
checking for --enable-universalsdk... no
checking for --with-universal-archs... no
checking MACHDEP... checking for --without-gcc... no
checking for --with-icc... no
checking for gcc... …
Run Code Online (Sandbox Code Playgroud)

python macos gcc pyenv macos-big-sur

14
推荐指数
3
解决办法
5938
查看次数

如何根据 pyenv / virtualenv 在 neovim 中为 python 语言服务器设置 python 解释器

我在 neovim (0.5) 中使用 Pyright LSP。它可以工作,但似乎只能选择标准 python 安装中可用的软件包。对于不在基本 python 中但在我的 pyenv 环境中的包,它不会自动完成。在 VSCode 中,通过选择解释器可以很容易地完成此操作。

如何在 Neovim 中设置 Pyright LSP 使用的虚拟环境或 pyenv 版本?

neovim pyenv pyright

14
推荐指数
1
解决办法
2万
查看次数

如何正确使用 Pyenv 和 venv?

文章阅读:

Python的虚拟环境:入门

Pyenv - 为特定项目安装多个 Python 版本

如何管理多个 Python 版本和虚拟环境

假设我们有这些目录:

 ~/Projects/PyA : it'll use Python 3.4.3 with Django 2.0
 ~/Projects/PyB : it'll use Python 3.5.1 with Django 2.1
 ~/Projects/PyC : it'll use Python 3.5.6 with Django 2.2
 ~/Projects/PyD : it'll use Python 3.2 with python-igraph
Run Code Online (Sandbox Code Playgroud)

首先,我们安装所需的 Python 版本:

$ pyenv install 3.4.3
$ pyenv install 3.5.1
$ pyenv install 3.5.6
$ pyenv install 3.2
Run Code Online (Sandbox Code Playgroud)

我的疑惑从这里开始:

我应该这样做吗?

$ cd ~/Projects/PyA && pyenv local 3.4.3 && python3.4 -m venv …
Run Code Online (Sandbox Code Playgroud)

python python-venv pyenv

13
推荐指数
2
解决办法
5604
查看次数

用pyenv安装anaconda,无法配置虚拟环境

我正在使用 pyenv 来管理 python 安装和虚拟环境 - 我希望 anaconda 成为这样的安装之一,并且能够使用 anaconda python 创建虚拟环境。使用pyenv install anaconda3-2019.03成功安装,我可以激活版本pyenv global anaconda3-2019.03

SamLee-PC:~ max$ pyenv versions
  system
  2.7.10
  2.7.10/envs/flask_tutorial
* 3.7.4 (set by /Users/max/.pyenv/version)
  3.7.4/envs/learning_python
  3.7.4/envs/microblog
  3.7.4/envs/stocktool
  3.7.4/envs/test1
  anaconda3-2019.03
  anaconda3-2019.03/envs/datsci
  datsci
  flask_tutorial
  learning_python
  microblog
  stocktool
  test1
SamLee-PC:~ max$ pyenv which python
/Users/max/.pyenv/versions/3.7.4/bin/python
SamLee-PC:~ max$ pyenv global anaconda3-2019.03
(anaconda3-2019.03) SamLee-PC:~ max$ pyenv which python
/Users/max/.pyenv/versions/anaconda3-2019.03/bin/python
(anaconda3-2019.03) SamLee-PC:~ max$ pyenv which conda
/Users/max/.pyenv/versions/anaconda3-2019.03/bin/conda
Run Code Online (Sandbox Code Playgroud)

(不知道为什么只有anaconda安装才在命令提示符中添加python版本)

当我创建一个新的虚拟环境 ( pyenv virtualenv anaconda3-2019.03 datsci) 时,它似乎按预期工作:

SamLee-PC:~ max$ …
Run Code Online (Sandbox Code Playgroud)

python anaconda pyenv

13
推荐指数
1
解决办法
1万
查看次数

在 wsl2 ubuntu 20.04 上尝试 (pyenv install -v 3.9.0) 时 pyenv 构建失败

已解决:解决方案是我需要 zlib1g-dev

这是 pyenv 产生的错误

Traceback (most recent call last):
  File "<frozen zipimport>", line 520, in _get_decompress_func
ModuleNotFoundError: No module named 'zlib'

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "<frozen zipimport>", line 568, in _get_data
  File "<frozen zipimport>", line 523, in _get_decompress_func
zipimport.ZipImportError: can't decompress data; zlib not available

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "<string>", line 6, in <module>
  File "/tmp/python-build.20201212114143.1082/Python-3.9.0/Lib/runpy.py", line …
Run Code Online (Sandbox Code Playgroud)

linux python-3.x pyenv windows-subsystem-for-linux

13
推荐指数
1
解决办法
7632
查看次数

pyenv 在激活虚拟环境时不再正确设置路径

我已经使用 pyenv 近两年了,在运行 RHEL 8.3(Linux 内核 4.18)和 X11 模式下的 Gnome 3.32.2 的系统上没有出现任何问题。我主要使用鱼壳,但偶尔也会使用 bash,直到现在都可以与 pyenv 一起使用。但是,在pyenv update大约 24 小时前运行后,使用该pyenv activate命令激活我创建的虚拟环境之一不再设置路径以使用我在该虚拟环境中安装的内容。

当我开始终端会话时,我看到一条新消息:

WARNING: `pyenv init -` no longer sets PATH.
Run `pyenv init` to see the necessary changes to make to your configuration.
Run Code Online (Sandbox Code Playgroud)

所以我跑了pyenv init它告诉我:

# Add pyenv executable to PATH by adding
# the following to ~/.profile:

set -Ux PYENV_ROOT $HOME/.pyenv
set -Ux fish_user_paths $PYENV_ROOT/bin $fish_user_paths

# Load pyenv automatically by appending
# the following …
Run Code Online (Sandbox Code Playgroud)

python fish pyenv pyenv-virtualenv

13
推荐指数
4
解决办法
5096
查看次数

将 Poetry 与 PyEnv 一起使用并遇到 Python 版本问题

我正在使用 WSL2 Ubuntu。我一直在学习使用 Fastapi 进行后端 API 开发的课程。我相信我的 Ubuntu 默认 python 是 3.8。我正在尝试使用 python 3.10.0 进行开发。我做了以下事情:

\n
    \n
  1. pyenv安装3.10.0
  2. \n
  3. cd 到我的项目文件夹和 pyenv local 3.10.0 (创建包含 3.10.0 的 .python-version 文件)
  4. \n
  5. 诗歌 shell(这会创建一个 .venv 文件夹,并且所有依赖项都会在开发过程中添加到那里)。Bash 提示符中有 (.venv)。
  6. \n
  7. python --version 显示 3.10.0 作为当前版本
  8. \n
\n

我的问题是,当我查看 .venv/bin 文件时,所有符号链接都显示 python 3.8。

\n
drwxr-xr-x 2 mryan mryan 4096 Feb  1 23:12 .\ndrwxr-xr-x 4 mryan mryan 4096 Feb  1 23:12 ..\n-rw-r--r-- 1 mryan mryan 2152 Feb  1 23:12 activate\n-rw-r--r-- 1 mryan mryan 1444 Feb …
Run Code Online (Sandbox Code Playgroud)

python ubuntu python-venv pyenv

13
推荐指数
1
解决办法
2万
查看次数

将早期版本的 python 与诗歌结合使用

设置项目并使用尚未作为系统范围二进制文件安装的早期版本的 Python 的过程是什么?

\n

理想情况下,poetry add <package>应该安装到以前版本的 python,并且poetry shell应该打开一个具有正确版本的虚拟环境。

\n

我努力了:

\n
mkdir myproj\ncd myproj\n\neval "$(pyenv init -)"\npyenv install 3.8.9\npyenv local 3.8.9\n\npoetry init --no-interaction --python="3.8.9"\npoetry env use 3.8.9\npoetry add numpy\n\necho \'\nimport sys\nprint(sys.version)\n\nimport numpy\nprint(numpy.__version__)\n\' > main.py\n\npoetry shell\neval "$(pyenv init -)"\npython main.py\n
Run Code Online (Sandbox Code Playgroud)\n

但这给出了:

\n
3.8.9 (default, May  1 2021, 22:43:00)\n[GCC 10.2.0]\nTraceback (most recent call last):\n  File "main.py", line 5, in <module>\n    import numpy\nModuleNotFoundError: No module named \'numpy\'\n
Run Code Online (Sandbox Code Playgroud)\n

...表明python运行的版本正确(如预期),但该包未安装到 python 3.8.9。的确:

\n
\xce\xbb ls "$(poetry …
Run Code Online (Sandbox Code Playgroud)

python pyenv python-poetry

12
推荐指数
1
解决办法
1699
查看次数

pyenv-virtualenv 的问题:激活/停用虚拟环境时 Python 和 PIP 未更改

pyenv-virtualenv在 Ubuntu 16.04 VPS 上使用 Linuxbrew (Homebrew 2.2.5) 安装。pyenv 版本是:1.2.16。现在当我做这样的测试时:

pyenv install 3.8.1
pyenv virtualenv 3.8.1 test
cd /.pyenv/versions/3.8.1/envs/test
pyenv local 3.8.1
Run Code Online (Sandbox Code Playgroud)

然后进入/离开不会激活停用虚拟环境,并且我在 shell 中看/.pyenv/versions/3.8.1/envs/test不到。(test) username:~我还创建了一个/home/users/test目录,.python-version但仍然进入/离开目录没有任何作用。

根据文档

如果在 shell 中配置了 eval "$(pyenv virtualenv-init -)",pyenv-virtualenv 将在进入/离开包含 .python-version 文件的目录时自动激活/停用 virtualenvs,该文件包含有效虚拟环境的名称显示在 pyenv virtualenvs 的输出中(例如上面示例中的 venv34 或 3.4.3/envs/venv34)。pyenv 使用 .python-version 文件来表示本地 Python 版本,并且可以使用 pyenv local 命令创建和删除。


所以第一个问题是:为什么这不起作用?为什么在进入/离开包含文件的目录时虚拟环境没有自动激活/停用.python-version

另外,当我手动激活 virtualenvpyenv activate test然后检查 Python 版本时,它会打印系统 Python 版本,而不是环境中的版本Python …

python pip virtualenv python-3.x pyenv

11
推荐指数
2
解决办法
1万
查看次数

无法在 MacOS 上使用 pyenv 安装 Python 3.10.0

尝试使用 pyenv 2.1.0(来自自制程序)在 MacOS 11.6 (Intel) 上安装 Python 3.10.0 失败,并显示:

python-build: use openssl@1.1 from homebrew
python-build: use readline from homebrew
Downloading Python-3.10.0.tar.xz...
-> https://www.python.org/ftp/python/3.10.0/Python-3.10.0.tar.xz
Installing Python-3.10.0...
python-build: use tcl-tk from homebrew
python-build: use readline from homebrew
python-build: use zlib from xcode sdk

BUILD FAILED (OS X 11.6 using python-build 20180424)

Inspect or clean up the working tree at /var/folders/rk/_qysk9hs40qcq14h44l57wch0000gn/T/python-build.20211006114013.40649
Results logged to /var/folders/rk/_qysk9hs40qcq14h44l57wch0000gn/T/python-build.20211006114013.40649.log

Last 10 log lines:
checking MACHDEP... "darwin"
checking for gcc... clang
checking whether the C compiler works... …
Run Code Online (Sandbox Code Playgroud)

python macos pyenv

11
推荐指数
1
解决办法
2万
查看次数