有时我会收到错误,我怀疑是我的Django应用程序使用全局安装的Python模块/Django应用程序而不是其virtualenv中的那些模块的结果。
有没有一种方法可以检查我的应用程序的virtualenv是否是用'--no-site-packages'创建的,而不必删除它,然后按如下所示重新创建它?
deactivate
rmvirtualenv my_env
mkvirtualenv my_env --no-site-packages
workon my_env
pip install -r requirements.txt
一定有更好的办法!谢谢。
3条答案
按热度按时间ep6jt1vc1#
在使用
--no-site-packages
创建虚拟环境时,<env>/lib/pythonX.X/
中有一个名为no-global-site-packages.txt
的文件。在virtualenv 1.7中尝试了以下操作:
uqjltbpv2#
一种简单的方法是打开交互式python shell并执行
import somemodule; print somemodule
,然后检查导入该模块的路径。对比
v09wglhw3#
@Rob的解决方案适用于较新的版本,我已经查看了代码:)。
如果你有一个旧的(比如我的1.4.5),你可以检查python路径。如果路径中有默认的“site-packages”目录(例如/usr/lib/python/site-packages),那么你的virtualenv就用 * site-packages创建了。
您可以从以下内容中查看它:
如果你有 --no-site-packages,你所有的路径会像这样:
否则,您将得到类似于: