35

因此,我的 python 项目有一个名为 venv 的 virtualenv 文件夹。

我可以跑:

venv/bin/pip install -r requirements.txt

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

apt-get install python-m2crypto

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

4

5 回答 5

48
--system-site-packages

提供对虚拟环境的全局站点包模块的访问。

你可以这样做:

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

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

于 2012-12-21T15:07:52.400 回答
27

毕竟我做了什么:

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/
于 2012-12-21T16:02:48.463 回答
19

真正简单的解决方案。

在虚拟环境目录中,编辑文件pyvenv.cfg. 设置参数 include-system-site-packages = true,保存文件。全局安装的模块将在您下次激活 ( source venv/bin/activate) 环境时出现。

可以通过验证pip list

享受!

于 2018-09-30T07:16:39.080 回答
13

toggleglobalsitepackages将切换对系统范围的访问site-packages

注意:您需要pip install virtualenvwrapper获取此命令;香草virtualenv不包括它。与您一起virtualenvwrapper,您还可以获得非常有用的mkvirtualenv命令rmvirtualenv等。

于 2014-05-15T22:07:52.227 回答
4
venv/bin/pip install -I M2Crypto

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

于 2012-12-21T14:52:02.933 回答