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

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

我可以跑:

venv/bin/pip install -r requirements.txt 

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

 apt-get install python-m2crypto 

我怎样才能添加这个软件包通过安装到venv文件夹?

 --system-site-packages 

可以访问全球网站包模块到虚拟环境。

你可以这样做:

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

…然后你可以在你的virtualenv中访问m2crypto (以及所有其他的系统安装的软件包)。

毕竟我做了什么:

 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/ 

toggleglobalsitepackages会切换到系统范围的site-packages访问权限。

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

 venv/bin/pip install -I M2Crypto 

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