为了账号安全,请及时绑定邮箱和手机立即绑定

virtualenv 可以从站点包中包含必要的项目包吗

virtualenv 可以从站点包中包含必要的项目包吗

慕姐8265434 2021-12-21 16:50:04
运行命令行:virtualenv --system-site-packages venv我希望 venv 文件夹venv\Lib\site-packages包含位于以下项目的所有必要库: C:\Users\XXX\AppData\Local\Programs\Python\Python36\Lib\site-packages\但事实并非如此,只有少数安装了。例如,我的程序当前使用的pdfminer是C:\Users\XXXX\AppData\Local\Programs\Python\Python36\Lib\site-packages\我希望它被包含在内,venv\Lib\site-packages但它没有被复制。有什么建议吗?
查看完整描述

3 回答

?
翻阅古今

TA贡献1780条经验 获得超5个赞

--system-site-packages不复制包,它只允许来自 virtualenv 的 python 访问C:\Users\XXX\AppData\Local\Programs\Python\Python36\Lib\site-packages\.

无法复制软件包,因为它们可能依赖于它们的安装目录。如果您希望 virtualenv 中的这些包不要使用--system-site-packages并安装 virtualenv 中的所有包。


查看完整回答
反对 回复 2021-12-21
?
繁星coding

TA贡献1797条经验 获得超4个赞

如果不是强制使用 virtualenv,我建议使用 Anaconda。这将非常有助于您的担忧。

Conda 作为包管理器可帮助您查找和安装包。默认情况下,已经安装了很多包,以便为您的项目快速设置。要检查终端中安装的软件包列表,请键入: conda list 以获取使用 conda 安装的软件包。

如果你需要一个需要不同版本 Python 的包,你不需要切换到不同的环境管理器,因为 conda 也是一个环境管理器。

只需几个命令,您就可以设置一个完全独立的环境来运行不同版本的 Python,同时继续在您的正常环境中运行您常用的 Python 版本


查看完整回答
反对 回复 2021-12-21
?
湖上湖

TA贡献2003条经验 获得超2个赞

virtualenv 环境就像您刚刚安装了新版本的 Python 一样。除了 Python 提供的标准包之外,它没有其他包。如果您需要其他软件包,您必须使用“pip”安装它们,或者您可以使用您正在使用的本机 Python 版本来安装它们。

所以一般来说,只要做pip install <packagename>

如果您发现自己经常想用一组标准的基础包创建 virtualenv,那么将一个 requirements.txt 文件放在一起,列出您想要作为基础安装的所有包,并pip install -r requirements.txt在创建后立即在新的 virtualenv 中执行.

virtualenv 的一个好处是它是你的。您的用户拥有 100% 的所有权,这与系统拥有的基本 Python 版本不同。要将新软件包安装到基本 Python 版本中,您通常必须具有 root 访问权限(sudo 权限)。使用 virtualenvs,你不需要特殊的权限(事实上,如果你sudo在 virtualenv 中使用,你会被搞砸)来安装你想要的所有包。你所做的一切都在你自己的主目录中。另一个巧妙的事情是,当你完成一个 virtualenv 时,你只需扔掉包含它的根目录。


查看完整回答
反对 回复 2021-12-21
  • 3 回答
  • 0 关注
  • 240 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号