运行命令行:
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
中,但不会被复制。
有什么建议吗?
答案 0 :(得分:0)
--system-site-packages
不会复制软件包,它只是允许virtualenv中的python访问C:\Users\XXX\AppData\Local\Programs\Python\Python36\Lib\site-packages\
中的软件包。
无法复制软件包,因为它们可能取决于安装目录。如果要在virtualenv中使用这些软件包,请不要使用--system-site-packages
并在virtualenv中安装所有软件包。
答案 1 :(得分:0)
virtualenv环境与您刚刚安装了新版本的Python相同。除了Python随附的标准软件包外,它没有其他软件包。如果需要其他软件包,则必须使用“ pip”安装它们,或者使用正在使用的本机Python版本来安装它们。
因此,一般来说,只需执行pip install <packagename>
。
如果您发现自己经常想用一组标准的基础软件包来创建virtualenvs,则将一个require.txt文件放在一起,列出要作为基础安装的所有软件包,然后在pip install -r requirements.txt
新的virtualenv,就在创建后。
关于virtualenv的一件好事是它全是您的。您的用户拥有它的100%,与系统拥有的基本Python版本不同。要将新软件包安装到基本的Python版本中,通常必须具有root用户访问权限(sudo特权)。使用virtualenvs,您不需要特殊的权限(实际上,如果您在virtualenv中使用sudo
,您将被搞砸)来安装所需的所有软件包。您所做的一切都位于您自己的主目录中。另一整洁的事情是,当您使用virtualenv时,只需丢弃包含它的根目录即可。
答案 2 :(得分:0)
如果不是必须使用virtualenv,我建议您选择Anaconda。那将极大地帮助您解决问题。
Conda作为软件包管理器,可以帮助您查找和安装软件包。默认情况下,已经安装了许多软件包,以便为您的项目快速设置。要检查终端中安装的软件包列表,请键入:conda list以获取使用conda安装的软件包。
如果您需要一个需要使用不同版本的Python的软件包,则无需切换到其他环境管理器,因为conda也是环境管理器。
只需几个命令,您就可以设置一个完全独立的环境来运行该不同版本的Python,同时继续在正常环境中运行您通常的Python版本