我正在按照https://amaral.northwestern.edu/resources/guides/pyenv-tutorial安装 pyenv。
我安装了 pyenv 并更新.bash_profile为
export PYENV_ROOT=/usr/local/pyenv/
export PATH="/usr/local/pyenv/bin:$PATH"
eval "$(pyenv init -)"
eval "$(pyenv virtualenv-init -)"
Run Code Online (Sandbox Code Playgroud)
我添加了我的用户 和,两者都可以毫无问题地root访问。pyenv
当我运行sudo pyenv它时出现错误。
$ sudo pyenv
sudo: pyenv: command not found
Run Code Online (Sandbox Code Playgroud)
但是当我登录该用户后运行时,它工作正常。
$ sudo -i
# pyenv
pyenv 1.2.4
Usage: pyenv <command> [<args>]
Some useful pyenv commands are:
commands List all available pyenv commands
local Set or show the local application-specific Python version
global Set or show the global Python version
shell Set …Run Code Online (Sandbox Code Playgroud) 我用来pyenv管理我的 Python 环境,只需运行bash.
$ bash
pyenv: bash: command not found
Run Code Online (Sandbox Code Playgroud)
我试图解决为什么pipenv shell会出现上述错误,这就是我发现甚至bash无法工作的原因。我尝试pipenv通过更新brew并运行pyenv rehash来重新生成垫片。并且bash绝对存在。
$ which bash
/bin/bash
Run Code Online (Sandbox Code Playgroud)
我预计如果pyenv找不到命令,PATH将搜索环境变量指定的后续路径。有趣的是,如果我执行一些不存在的命令,我不会收到错误pyenv。
$ someboguscommand
-bash: someboguscommand: command not found
Run Code Online (Sandbox Code Playgroud)
这对我来说意味着pyenv在这种情况下甚至不搜索匹配的命令,并且PATH搜索后续路径,因此必须对bash.
我正在尝试使用 pyenv 在我的 macbook 中安装较旧的 python 版本 3.6.8。\n不幸的是,我遇到了这个构建 OS X 错误,我无法解决该错误。\n如果有人知道我如何解决这个问题,谢谢。
\n\n(base) \xe2\x9e\x9c ~ pyenv install 3.6.8\npython-build: use openssl@1.1 from homebrew\npython-build: use readline from homebrew\nDownloading Python-3.6.8.tar.xz...\n-> https://www.python.org/ftp/python/3.6.8/Python-3.6.8.tar.xz\nInstalling Python-3.6.8...\npython-build: use readline from homebrew\npython-build: use zlib from xcode sdk\n\nBUILD FAILED (OS X 10.14.6 using python-build 20180424)\n\nInspect or clean up the working tree at /var/folders/cn/d7tn5tls0jg6_dyn2853t6p40000gn/T/python-build.20200424220226.47493\nResults logged to /var/folders/cn/d7tn5tls0jg6_dyn2853t6p40000gn/T/python-build.20200424220226.47493.log\n\nLast 10 log lines:\nchecking for --with-universal-archs... no\nchecking MACHDEP... darwin\nchecking for --without-gcc... no\nchecking for --with-icc... no\nchecking for gcc... x86_64-apple-darwin13.4.0-clang\nchecking whether the C compiler works... no\nconfigure: error: …Run Code Online (Sandbox Code Playgroud) 我尝试为使用此 python 版本的项目安装 python 2.7.8。
但是当我使用命令时:
$ pyenv install 2.7.8
Run Code Online (Sandbox Code Playgroud)
我有这个错误消息:
python-build: use openssl from homebrew
python-build: use readline from homebrew
Downloading Python-2.7.8.tar.xz...
-> https://www.python.org/ftp/python/2.7.8/Python-2.7.8.tar.xz
Installing Python-2.7.8...
patching file ./Lib/site.py
patching file ./Lib/ssl.py
patching file ./Modules/_ssl.c
python-build: use readline from homebrew 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 (OS X 10.13.6 using python-build 20180424)
Inspect or clean up the working tree at …Run Code Online (Sandbox Code Playgroud) 当激活诗歌 python shell 时,我在 bash 提示符中收到一个非常长的字符串:
(my-current-folder-pNzYm0GW-py3.8) (base) myusername@mycomputername>
Run Code Online (Sandbox Code Playgroud)
我希望它更短,也许像这样:
(py3.8) myusername@mycomputername>
Run Code Online (Sandbox Code Playgroud)
有谁知道这是怎么做到的吗?
(我猜这base来自于系统上也安装了 miniconda,我可以通过编辑我的 来修复它.bashrc)
我创建了一个用于pyenv virtualenv 3.5.9 projectname开发 django 项目的虚拟环境。
如何设置环境变量供我的代码使用?
我尝试像这样添加环境变量 DATABASE_USER /Users/developer/.pyenv/versions/projectname/bin/activate
:
export DATABASE_USER="dbuser"
Run Code Online (Sandbox Code Playgroud)
当我尝试echo $DATABASE_USER打印一个空字符串时。
尝试安装zsh-autoenv
现在我可以echo $DATABASE_USER获取 .autoenv.zsh 文件中设置的值。
但我似乎无法让环境变量可用于我的 django 代码:
如果我尝试os.getenv('DATABASE_USER', '')在 virtualenv 内的 python shell 中,我得到''
可能出什么问题了?zsh-autoenv 变量是否仅适用于 zsh shell,而不适用python manage.py shell?
我最近使用文档pyenv-win在我的 Windows 计算机上进行了安装,因为我的计算机上已经安装了 Python 3.8.5。曾经将全局版本设置为3.7.6:pip pyenv
pyenv which python返回结果C:\Users\Haydn\.pyenv\pyenv-win\versions\3.7.6\python.exe符合预期python -V返回Python 3.8.5pip -V返回pip 20.2.2 from C:\Users\Haydn\AppData\Roaming\Python\Python38\site-packages\pip (python 3.8)安装其他软件包(例如pipenv在 Python 3.8 文件夹中这样做)会失败,需要 Python 3.7 的项目也是如此。我正在尝试找出我可能做错了什么或可能无法工作,以便pyenv在系统 3.8 上使用 3.7 版本。
安装过程中一切似乎都进展顺利:
pyenv --version回报pyenv 2.64.3PYENV设置为C:\Users\Haydn\.pyenv\pyenv-win\C:\Users\Haydn\.pyenv\pyenv-win\bin&C:\Users\Haydn\.pyenv\pyenv-win\shims添加到Path环境变量中。我对环境变量了解不多,但我怀疑使用安装 Python 3.7 并pyenv没有向我的Path变量添加任何内容(参见屏幕截图),因此当我调用它时,python它只是按预期移入 3.8 文件夹。我觉得pyenv应该在这里添加一些东西,但这可能不是这个包的工作原理,而其他东西很可能是原因。
在此先感谢您的帮助
我是虚拟环境的粉丝,我也喜欢将我的virtualenvs 保留在项目根目录中。这有助于我跟踪它们的位置,并允许我给它们起通用名称,例如.venv.
但我需要一种方法来安装特定版本的 python 以便与我的virtualenvs 一起使用。所有的道路似乎都指向pyenv。
除非我误解了如何工作pyenv和pyenv-virtualenv工作,否则这个库似乎坚持将我的实际 virtualenv 埋在~/.pyenv文件夹中的某个位置,并给我留下一个.python-version我不想拥有的文件。
有没有一种方法可以方便地安装特定版本的python pyenv,然后在我的项目目录中以传统方式创建我的虚拟环境,从而在pyenv创建虚拟环境后消除我的项目的依赖?
我尝试运行 pyenv install 3.8.5 但不断收到以下错误:
python-build: use openssl@1.1 from homebrew
python-build: use readline from homebrew
Downloading Python-3.8.5.tar.xz...
-> https://www.python.org/ftp/python/3.8.5/Python-3.8.5.tar.xz
Installing Python-3.8.5...
python-build: use readline from homebrew
python-build: use zlib from xcode sdk
BUILD FAILED (OS X 11.5.1 using python-build 20180424)
Inspect or clean up the working tree at /var/folders/61/8hkv2j8j6x7d7ldfq1d201b80000gp/T/python-build.20211009182855.32315
Results logged to /var/folders/61/8hkv2j8j6x7d7ldfq1d201b80000gp/T/python-build.20211009182855.32315.log
Last 10 log lines:
checking size of _Bool... 1
checking size of off_t... 8
checking whether to enable large file support... no
checking size of time_t... 8 …Run Code Online (Sandbox Code Playgroud) 我需要使用Python 3.8。我使用以下命令安装它:
pyenv install 3.8.1
Run Code Online (Sandbox Code Playgroud)
现在的输出pyenv versions是:
system
* 3.8.1 (set by /Users/username/.pyenv/version)
Run Code Online (Sandbox Code Playgroud)
输出python -V:
Python 2.7.16
Run Code Online (Sandbox Code Playgroud)
为什么它们不同?
pyenv ×10
python ×10
bash ×2
homebrew ×2
virtualenv ×2
apple-m1 ×1
django ×1
macos ×1
python-2.7 ×1
python-3.8 ×1
sudo ×1
windows ×1