将全局软件包包括在使用-NO SITE包装创建的Virtualenv中
-
03-10-2019 - |
题
我通常更喜欢创建使用-NO SITE包装选项的VirtualEnvs以进行更多隔离,并且还因为默认的Python Global软件包包含很多软件包,并且通常不需要其中大多数。但是,我仍然想保留一些精选的软件包,例如PIL或PSYCOPG2。是否有一个很好的方法将它们包括在Virtualenv中,也可以轻松自动化?
解决方案
如果您正在使用 Virtualenvwrapper 您也许可以使用 Postmkvirtualenv 脚本将在新的Virtualenv SitePackages目录中自动创建符号链接。
#!/bin/sh
cdsitepackages
ln -s /path/to/system/site-packages/package-name
cdvirtualenv
其他提示
如果您正在使用 Virtualenvwrapper, ,shell命令 add2virtualenv
应在活动的虚拟v中存在。采用:
add2virtualenv /path/to/package
为PTH文件添加条目 _virtualenv_path_extensions.pth
在您的Virtualenv网站包中。
使用Add2virtualenv而不是自己创建符号链接的好处是,您可以通过在PTH文件中评论其行来删除包裹的导入。这使得对您的代码依赖的多个版本的库有效性更加容易。
我实际上还没有使用这些特定的软件包尝试过,但是我想,从全局站点包装到Virtualenv的站点包装中的简单符号链接可能会起作用,这很容易脚本脚本。
不隶属于 StackOverflow