你可以cd
到YOUR_ENV/lib/pythonxx/site-packages/
,看一看,但没有任何方便的方式?
pip freeze
列出所有已安装的软件包,包括系统环境的软件包。
Answers:
pip
在virtualenv中调用command应该列出在隔离环境中可见/可用的软件包。确保使用--no-site-packages
默认情况下使用options的virtualenv的最新版本。这样,使用virtualenv的目的是创建一个python环境,而无需访问安装在系统python中的软件包。
接下来,确保您使用pip
virtualenv(YOUR_ENV/bin/pip
)中提供的命令。或者只是激活virtualenv(source YOUR_ENV/bin/activate
)作为调用python解释器或pip的正确命令的便捷方法
~/Projects$ virtualenv --version
1.9.1
~/Projects$ virtualenv -p /usr/bin/python2.7 demoenv2.7
Running virtualenv with interpreter /usr/bin/python2.7
New python executable in demoenv2.7/bin/python2.7
Also creating executable in demoenv2.7/bin/python
Installing setuptools............................done.
Installing pip...............done.
~/Projects$ cd demoenv2.7/
~/Projects/demoenv2.7$ bin/pip freeze
wsgiref==0.1.2
~/Projects/demoenv2.7$ bin/pip install commandlineapp
Downloading/unpacking commandlineapp
Downloading CommandLineApp-3.0.7.tar.gz (142kB): 142kB downloaded
Running setup.py egg_info for package commandlineapp
Installing collected packages: commandlineapp
Running setup.py install for commandlineapp
Successfully installed commandlineapp
Cleaning up...
~/Projects/demoenv2.7$ bin/pip freeze
CommandLineApp==3.0.7
wsgiref==0.1.2
我的回答奇怪的是,包'wsgiref'在virtualenv内部可见。它来自我的系统python。目前,我不知道为什么,但是您的系统上可能有所不同。
--no-site-packages
。鉴于--local
不需要了解旗帜。但是您的回答无疑会为该问题的读者增加价值。
您只能在virtualenv
by
pip freeze --local
或中
列出软件包pip list --local
。无论您是否在中看到全局站点包,此选项都有效virtualenv
。
请注意,限制virtualenv
不使用全局站点包不是解决问题的方法,因为问题在于如何分隔两个列表,而不是如何约束工作流以适应工具的限制。
如果您仍然对此感到困惑,则virtualenv
可能无法选择如何结合Ioannis和Sascha的答案中的出色技巧。也就是说,这是您需要的基本命令:
/YOUR_ENV/bin/pip freeze --local
那可以很容易地在其他地方使用。例如,这是一个方便且完整的答案,适用于在您通过virtualenvwrapper设置的所有环境中安装所有本地软件包:
cd ${WORKON_HOME:-~/.virtualenvs}
for dir in *; do [ -d $dir ] && $dir/bin/pip freeze --local > /tmp/$dir.fl; done
more /tmp/*.fl
在Python3中
pip list
空静脉是
Package Version
---------- -------
pip 19.2.3
setuptools 41.2.0
开始一个新的环境
python3 -m venv your_foldername_here
启用
cd your_foldername_here
source bin/activate
停用
deactivate
您也可以站在文件夹中并为虚拟环境指定名称/文件夹(python3 -m venv name_of_venv)。
Venv是3.3之后随Python一起提供的virtualenv的子集。
.venv/bin/pip freeze
为我工作。
--no-site-packages
选项。然后,我创建了另一个带有该选项的ENV进行测试,并且可以正常工作。感谢您的提醒。