Python 3.3在其标准库中包含了新包venv
.它做了什么,它与所有其他似乎与正则表达式相匹配的包有什么不同(py)?(v|virtual|pip)?env
?
我最近学会了如何在我的工作流程中使用virtualenv和virtualenvwrapper,但我在一些指南中看到了pyenv,但我似乎无法理解pyenv是什么以及它与virtualenv的不同/相似之处.pyenv是virtualenv或免费工具的更好/更新的替代品吗?如果后者有什么不同的做法,那么两者(以及virtualenvwrapper,如果适用)如何协同工作?
我是一个试图学习python的ruby程序员.我是pyenv的家庭,因为它就像是来自rbenv的复制和粘贴.Pyenv有助于在系统中拥有多个版本的python,并且可以在不触及系统敏感部分的情况下隔离python.
我想每个python安装都带有pip包.我还是不明白的是,有许多好的python库,建议使用这个virtualenv和anaconda.我甚至可以找到pyenv的virtualenv插件.
现在我对这两个pyenv和virtualenv的目的感到困惑.更糟糕的是pyenv里面有一个virtualenv插件.
我的问题是:
您的例子将得到高度赞赏.
我想将 Python3 与 pyenv 一起使用。
$ pyenv root
/Users/asari/.pyenv
$ pyenv versions
system
2.7.15
3.6.2
3.6.3
3.6.4
* 3.6.6 (set by /Users/asari/workspace/hoge/.python-version)
$ python -V
pyenv: python: command not found
The `python' command exists in these Python versions:
2.7.15
Run Code Online (Sandbox Code Playgroud)
但是,找不到 python 命令。
我读了一下.pyenv/shims/python
,以为里面没有python .pyenv/versions/3.6.6/bin/
,但不知道为什么缺少python。
$ pwd
/Users/asari/.pyenv/versions/3.6.6/bin
$ ls -la
total 12096
drwxr-xr-x 19 asari staff 608 8 16 00:51 .
drwxr-xr-x 6 asari staff 192 8 16 00:51 ..
lrwxr-xr-x 1 asari staff 8 8 16 …
Run Code Online (Sandbox Code Playgroud) 通过 pyenv 安装的 Python 版本无法导入tkinter
:
? python
Python 3.8.1 (default, Feb 29 2020, 11:45:59)
[Clang 11.0.0 (clang-1100.0.33.17)] on darwin
Type "help", "copyright", "credits" or "license" for more information.
>>> import tkinter
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "/Users/factor/.pyenv/versions/3.8.1/lib/python3.8/tkinter/__init__.py", line 36, in <module>
import _tkinter # If this fails your Python may not be configured for Tk
ModuleNotFoundError: No module named '_tkinter'
>>>
Run Code Online (Sandbox Code Playgroud)
或者您可能会收到有关标头版本与二进制文件不匹配的消息:
DEPRECATION WARNING: The system version of Tk is deprecated …
Run Code Online (Sandbox Code Playgroud) 我想知道我可以使用该pyenv install
命令安装哪些 Python 版本。 pyenv versions
仅列出已安装的版本,似乎没有列出可用版本的选项。
如何找出可以安装的 Python 版本pyenv install
?
当一个python脚本应该从pyenv
virtualenv
文件的正确shebang 运行?
作为示例测试用例,我的系统(OSX)上的默认python尚未pandas
安装.pyenv virtualenv venv_name
确实如此.我尝试从virtualenv获取python可执行文件的路径.
$ pyenv activate venv_name
(venv_name)$ which python
/Users/username/.pyenv/shims/python
Run Code Online (Sandbox Code Playgroud)
所以我举了我的榜样script.py
:
#!/Users/username/.pyenv/shims/python
import pandas as pd
print 'success'
Run Code Online (Sandbox Code Playgroud)
但是当我尝试运行脚本时,我收到了一个错误:
(venv_name) $ ./script.py
./script.py: line 2: import: command not found
./script.py: line 3: print: command not found
Run Code Online (Sandbox Code Playgroud)
虽然在命令行上运行该路径工作正常:
(venv_name) $ /Users/username/.pyenv/shims/python script.py
success
(venv_name) $ python script.py # also works
success
Run Code Online (Sandbox Code Playgroud)
什么是适当的shebang为此?理想情况下,我想要一些通用的东西,以便它指向我目前的venv所在的python.
尝试在适用于 Windows 10 的 Ubuntu 20.04 WSL上使用pyenv安装新Python
版本失败,并显示以下输出:
username@hd1pcms0347:~$ pyenv install 3.9.4
Downloading Python-3.9.4.tar.xz...
-> https://www.python.org/ftp/python/3.9.4/Python-3.9.4.tar.xz
Installing Python-3.9.4...
python-build: use readline from homebrew
BUILD FAILED (Ubuntu 20.04 using python-build 20180424)
Inspect or clean up the working tree at /tmp/python-build.20210602162502.2268
Results logged to /tmp/python-build.20210602162502.2268.log
Last 10 log lines:
File "/tmp/python-build.20210602162502.2268/Python-3.9.4/Lib/ensurepip/__init__.py", line 210, in _main
return _bootstrap(
File "/tmp/python-build.20210602162502.2268/Python-3.9.4/Lib/ensurepip/__init__.py", line 129, in _bootstrap
return _run_pip(args + [p[0] for p in _PROJECTS], additional_paths)
File "/tmp/python-build.20210602162502.2268/Python-3.9.4/Lib/ensurepip/__init__.py", line 38, in _run_pip …
Run Code Online (Sandbox Code Playgroud) 我正在尝试使用pyenv在我的MBP上并行安装Python 2.7.5和3.6.5.
pyenv
安装以下如何使用Homebrew在Mac上安装Python 2和3?, 我试过了:
$ pyenv install 3.6.5
Run Code Online (Sandbox Code Playgroud)
哪个错误:
python-build: use openssl from homebrew
python-build: use readline from homebrew
Downloading Python-3.6.5.tar.xz...
-> https://www.python.org/ftp/python/3.6.5/Python-3.6.5.tar.xz
Installing Python-3.6.5...
python-build: use readline from homebrew
BUILD FAILED (OS X 10.13.4 using python-build 20160602)
Inspect or clean up the working tree at /var/folders/d0/t8d3jjp161g2dyrd4k67ypc80000gn/T/python-build.20180426091253.34709
Results logged to /var/folders/d0/t8d3jjp161g2dyrd4k67ypc80000gn/T/python-build.20180426091253.34709.log
Last 10 log lines:
File "/private/var/folders/d0/t8d3jjp161g2dyrd4k67ypc80000gn/T/python-build.20180426091253.34709/Python-3.6.5/Lib/ensurepip/__main__.py", line 5, in <module>
sys.exit(ensurepip._main())
File "/private/var/folders/d0/t8d3jjp161g2dyrd4k67ypc80000gn/T/python-build.20180426091253.34709/Python-3.6.5/Lib/ensurepip/__init__.py", line 204, in _main
default_pip=args.default_pip,
File "/private/var/folders/d0/t8d3jjp161g2dyrd4k67ypc80000gn/T/python-build.20180426091253.34709/Python-3.6.5/Lib/ensurepip/__init__.py", line 117, in …
Run Code Online (Sandbox Code Playgroud) pyenv ×10
python ×9
virtualenv ×3
macos ×2
anaconda ×1
homebrew ×1
pip ×1
python-2.7 ×1
python-venv ×1
terminal ×1
tkinter ×1
ubuntu ×1
windows-subsystem-for-linux ×1
xcode ×1
zlib ×1