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