标签: pyenv

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万
查看次数

Homebrew pyenv ... 无法安装 Python 3.8.3,尽管我已经安装了它

我通过 pyenv 安装了 3.8.2,但我想在本地机器上升级到 3.8.3,以匹配我们在生产中使用的版本。

$ ? pyenv install 3.8.3
python-build: definition not found: 3.8.3

The following versions contain `3.8.3' in the name:
  miniconda-3.8.3
  miniconda3-3.8.3

See all available versions with `pyenv install --list'.

If the version you need is missing, try upgrading pyenv:

  brew update && brew upgrade pyenv
Run Code Online (Sandbox Code Playgroud)

好吧,让我们试试看...

$ ? brew update && brew upgrade pyenv
Updating Homebrew...
Warning: pyenv 1.2.18 already installed
Run Code Online (Sandbox Code Playgroud)

我不清楚从哪里提供 pyenv 安装的 Python 版本。我已经安装了 3.8.3:

$ ? brew info python@3.8
python@3.8: stable 3.8.3 (bottled) …
Run Code Online (Sandbox Code Playgroud)

pyenv

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

pyenv:没有这样的命令`virtualenv'

我正在学习关于在 ubuntu 20.04 上设置火炬的教程,其中一行需要设置pyenv,就像 python 的 virtualenv 这样我可以运行多个版本的 python。有点不必要,但这是一个学习过程,也是学习另一天我可能会使用的另一种新工具的好机会。

所以这个命令在成功设置 pyenv 后失败了

sam@sam:~/torch$ pyenv virtualenv 3.8.2 torch
pyenv: no such command `virtualenv'
Run Code Online (Sandbox Code Playgroud)

所以为了涵盖我的基础知识,我已经安装了 virtualenv,如下所示

sam@sam:~/torch$ virtualenv
usage: virtualenv [--version] [--with-traceback] [-v | -q] [--app-data APP_DATA] [--clear-app-data] [--discovery {builtin}] [-p py] [--creator {builtin,cpython3-posix,venv}] [--seeder {app-data,pip}] [--no-seed]
                [--activators comma_sep_list] [--clear] [--system-site-packages] [--symlinks | --copies] [--download | --no-download] [--extra-search-dir d [d ...]] [--progress version] [--retrying version] [--urllib3 version]
                [--pep517 version] [--colorama version] [--CacheControl version] [--certifi version] [--requests version] [--contextlib2 …
Run Code Online (Sandbox Code Playgroud)

python pyenv

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

使用pyenv安装最新的python版本

有了ruby-install,安装最新的稳定ruby版本,只需要一个ruby-install ruby.

然而,pyenv一个似乎需要做一些荒谬的事情pyenv install $(pyenv install --list | sed 's/^ //' | grep '^\d' | grep --invert-match 'dev\|a\|b' | tail -1).

有一个更好的方法吗?为什么python工具似乎总是安装最新版本这样一个钝器过程与ruby(gem updatevs pip list --outdated | awk '!/Could not|ignored/ { print $1 }' | xargs pip install --upgrade)相比?我希望我是一个缺少的东西,但我永远找不到这个在线的简单解决方案.

python macos pyenv

10
推荐指数
4
解决办法
4692
查看次数

如何使用pyenv安装python 3.7.0?

我尝试使用命令"pyenv install 3.7.0"安装并获得如下错误

Downloading Python-3.7.0.tar.xz...
-> https://www.python.org/ftp/python/3.7.0/Python-3.7.0.tar.xz
Installing Python-3.7.0...
ERROR: The Python ssl extension was not compiled. Missing the OpenSSL lib?

Please consult to the Wiki page to fix the problem.
https://github.com/pyenv/pyenv/wiki/Common-build-problems

BUILD FAILED (Ubuntu 14.04 using python-build 20180424)
Run Code Online (Sandbox Code Playgroud)

我已经检查了https://github.com/pyenv/pyenv/wiki/Common-build-problems的解决方案并尝试过

CFLAGS=-I/usr/include/openssl \
LDFLAGS=-L/usr/lib64 \
pyenv install -v 3.7.0
Run Code Online (Sandbox Code Playgroud)

我再次面临同样的错误

The Python ssl extension was not compiled. Missing the OpenSSL lib?
Run Code Online (Sandbox Code Playgroud)

还试图安装低于3.7的python版本,所有版本都安装没有错误.我在这里缺少任何依赖包或版本更新.我有openssl版本

OpenSSL 1.0.1f 6 Jan 2014
Run Code Online (Sandbox Code Playgroud)

python-3.x pyenv python-3.7

10
推荐指数
2
解决办法
5969
查看次数

我们应该gitignore .python-version文件吗?

我有一个.python-version文件,当我用github创建一个Python repo并指定它应该有一个时.gitignore,它会将.python-version文件添加到它.在我看来,该文件不应该被忽略,因为在不同机器上运行代码的其他人想要知道他们需要什么版本的Python.

那么为什么呢.gitignore

python github gitignore pyenv

10
推荐指数
3
解决办法
705
查看次数

使用 pyenv 设置默认 python

我尝试通过安装 PYENV 和 PYPIP 在我的 macOS Catalina 10.15.1 上升级我的 Python 版本,并将全局和本地设置为版本 3.8.0。但是当我尝试使用 python 版本时,它仍然显示内置在 MacOS 操作系统中的 python 版本。缺少哪一部分?

$ pyenv -v
pyenv 1.2.14

$ pypip -v
zsh: command not found: pypip

$ pyenv versions
  system
* 3.8.0 (set by /Users/aj/.python-version)

$ pyenv global
3.8.0

$ pyenv local
3.8.0

$ python -V
Python 2.7.16
Run Code Online (Sandbox Code Playgroud)

python pyenv macos-catalina

10
推荐指数
4
解决办法
9575
查看次数

如何在 macOS Monterey 上安装不同版本的 Python

我需要运行 python 3.6,但我的 mac 上有 3.9,它正在运行 Monterey。

pyenv install 3.6.9
Run Code Online (Sandbox Code Playgroud)

但我收到这些错误;

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

BUILD FAILED (OS X 12.3 using python-build 2.2.5-1-ga157725d)

Inspect or clean up the working tree at /var/folders/k1/jjq8zhm90z5by3s9rgzrr5p40000gn/T/python-build.20220317113524.63390
Results logged to /var/folders/k1/jjq8zhm90z5by3s9rgzrr5p40000gn/T/python-build.20220317113524.63390.log

Last 10 log lines:
checking for --with-cxx-main=<compiler>... no
checking for clang++... no
configure:

  By default, distutils …
Run Code Online (Sandbox Code Playgroud)

python python-3.x pyenv macos-monterey

10
推荐指数
1
解决办法
4394
查看次数

使用 pyenv 安装 Python 3.10.5

我想安装 Python 3.10.5(或至少 Python >= 3.7)。我按照以下说明操作:

# Step 1. Install pyenv

git clone https://github.com/pyenv/pyenv.git ~/.pyenv
echo 'export PYENV_ROOT="$HOME/.pyenv"' >> ~/.bashrc
echo 'export PATH="$PYENV_ROOT/bin:$PATH"' >> ~/.bashrc
echo -e 'if command -v pyenv 1>/dev/null 2>&1; then\n  eval "$(pyenv init -)"\nfi' >> ~/.bashrc

# Step 2. Install missing headers for all the Python modules to be built

sudo zypper install readline-devel sqlite3-devel libbz2-devel

# Step 3. Install the desired Python version

pyenv install 3.10.5
Run Code Online (Sandbox Code Playgroud)

直到我到达pyenv install 3.10.5

bscuser@localhost:~> pyenv …
Run Code Online (Sandbox Code Playgroud)

python pyenv virtual-environment python-3.10

10
推荐指数
3
解决办法
3万
查看次数

如何让 pyenv 显示已安装版本的可执行路径?

使用以下命令安装 python 版本:

$ pyenv install 3.8.9
Installed Python-3.8.9 to /Users/robino/.pyenv/versions/3.8.9
Run Code Online (Sandbox Code Playgroud)

列出现在可用的 python 版本:

$ pyenv versions
  * system
  3.8.2
  3.8.9
Run Code Online (Sandbox Code Playgroud)

一周过去了,我忘记了它安装在哪里。现在假设我想获取 3.8.9 版本的可执行路径。以下内容不起作用:

$ pyenv which 3.8.9
  pyenv: 3.8.9: command not found
$ pyenv which python 3.8.9
  (gives path to system python)
$ pyenv which python-3.8.9
  pyenv: python-3.8.9: command not found
$ pyenv which Python-3.8.9
  pyenv: Python-3.8.9: command not found
Run Code Online (Sandbox Code Playgroud)

我发现的解决方法是设置 python 版本,检查,然后将其设置回系统:

$ pyenv local 3.8.9
$ pyenv which python
  /Users/robino/.pyenv/versions/3.8.9/bin/python
$ pyenv local --unset
Run Code Online (Sandbox Code Playgroud)

然而,这是一个次优的解决方案,因为它要求之前没有设置本地。

使用 pyenv …

python version pyenv

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