如何将全局安装的包导入virtualenv文件夹

时间:2012-12-21 14:48:08

标签: python ubuntu virtualenv

所以我有一个名为venv的virtualenv文件夹用于我的python项目。

我可以跑:

venv/bin/pip install -r requirements.txt

除了一个M2Crypto之外,还安装了项目所需的所有要求。安装它的唯一方法是通过apt-get:

apt-get install python-m2crypto

如何将这个通过apt安装的软件包添加到venv文件夹?

5 个答案:

答案 0 :(得分:40)

--system-site-packages

允许访问虚拟环境的全局站点包模块。

你可以这样做:

$ sudo apt-get install python-m2crypto
$ virtualenv env --system-site-packages

...然后您就可以在virtualenv中访问m2crypto(以及所有其他系统范围内安装的软件包)。

答案 1 :(得分:23)

毕竟我做了什么:

cp -R /usr/lib/python2.7/dist-packages/M2Crypto /home/richard/hello-project/venv/lib/python2.7/site-packages/
cp -R /usr/lib/python2.7/dist-packages/OpenSSL /home/richard/hello-project/venv/lib/python2.7/site-packages/

答案 2 :(得分:11)

toggleglobalsitepackages会切换对系统范围site-packages

的访问权限

注意:您需要pip install virtualenvwrapper才能获得此命令;香草virtualenv不包括它。使用virtualenvwrapper,您还可以获得非常有用的mkvirtualenvrmvirtualenv命令。

答案 3 :(得分:3)

venv/bin/pip install -I M2Crypto

-I强制它也被安装到virtualenv中,即使它已经全局安装。

答案 4 :(得分:3)

最简单的解决方案。 在虚拟环境目录中,编辑文件pyvenv.cfg,并设置参数 include-system-site-packages = true 保存文件。 全局安装的模块将在您下次激活(源/合并/激活)环境时出现。 可以通过“点子列表”进行验证

享受。