Lio*_*hon 5 python pip virtualenv python-venv ubuntu-16.04
当使用python -m venv env创造python3.X一个新的虚拟环境中,env不包含pip与setuptools版本我期望的那样。相反,它包含很“旧”版本:pip (8.1.1)和setuptools (20.7.0)为2018年6月的。
在另一方面,当使用virtualenv env(通过安装pip install virtualenv),画中画和setuptools的包都是最新的,即pip (10.0.1)和setuptools (39.2.0)为2018年6月的。
据我了解,它venv是构建虚拟环境的首选模块,因为它无需创建Python解释器的新实例,并且无需安装任何内容即可使用现有模块(Linux中的符号链接,Windows中的副本)(https: //www.reddit.com/r/learnpython/comments/4hsudz/pyvenv_vs_virtualenv/d2s2cda)。
为什么说venv的pip版本不匹配当前的系统吗?而且使用的行为virtualenv是如此不同?
PS:
短期的解决方案是使用pip install --upgrade pip的env。但这对我来说似乎不对。最小可行的解决方案:
$ python --version
Python 3.6.5
$ pip --version
pip 10.0.1 from /home/lionel/.local/lib/python3.6/site-packages/pip (python 3.6)
$ python -m venv env
$ . env/bin/activate
(env) $ # Here I am at version 8.1.1 of pip. Why did venv create its own pip,
(env) $ # instead of linking to the system one? As seen before, that was 10.0.1.
(env) $ pip install --upgrade pip
Collecting pip
Using cached https://files.pythonhosted.org/packages/0f/74/ecd13431bcc456ed390b44c8a6e917c1820365cbebcb6a8974d1cd045ab4/pip-10.0.1-py2.py3-none-any.whl
Installing collected packages: pip
Found existing installation: pip 8.1.1
Uninstalling pip-8.1.1:
Successfully uninstalled pip-8.1.1
Successfully installed pip-10.0.1
(env) $ pip list
Package Version
------------- -------
pip 10.0.1
pkg-resources 0.0.0
setuptools 20.7.0
(env) $ # Solved, now pip is the one I was expecting!
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
2774 次 |
| 最近记录: |