Python Virtualenv找不到导入的模块
我有一个用virtualenv打包的项目。它安装了setuptools&pipfine,并设置了所有必要的文件夹。我运行了Python Virtualenv找不到导入的模块,python,virtualenv,Python,Virtualenv,我有一个用virtualenv打包的项目。它安装了setuptools&pipfine,并设置了所有必要的文件夹。我运行了source-bin/activate,并为我的项目安装了必要的库:xmlutils,configparser 我将项目文件夹压缩成zip文件,然后尝试在另一台计算机上使用它。我能够毫无问题地运行源代码bin/activate。但是,一旦我运行脚本,就找不到模块xmlutils。我深入研究了项目的“libs/site-packages”文件夹,它显然就在那里 是因为我必须在另
source-bin/activate
,并为我的项目安装了必要的库:xmlutils,configparser
我将项目文件夹压缩成zip文件,然后尝试在另一台计算机上使用它。我能够毫无问题地运行源代码bin/activate
。但是,一旦我运行脚本,就找不到模块xmlutils。我深入研究了项目的“libs/site-packages”文件夹,它显然就在那里
是因为我必须在另一台计算机上安装virtualenv吗
以下是我的virtualenv项目的组织结构:
项目:
箱子
包括
解放党
lib64
projectScript.py
projectScript2.py构建virtualenv时,它绑定到特定路径,这意味着您无法重命名或移动它。如果您希望创建可移动的virtualenv,则可以使用文档中给出的
--relocate
选项
使virtualenv可重新定位所需的命令是:
virtualenv --relocatable ENV
注意两件事:
此外(正如我在评论中提到的),您可以使用
pip freeze>requirements.txt
保存一个文本文件,其中包含来自virtualenv内部pip的所有软件包需求。然后,您可以使用命令pip install-r requirements.txt
将这些软件包安装到新的virtualenv中。构建virtualenv时,它绑定到特定路径,这意味着您无法重命名或移动它。如果您希望创建可移动的virtualenv,则可以使用文档中给出的--relocate
选项
使virtualenv可重新定位所需的命令是:
virtualenv --relocatable ENV
注意两件事:
此外(正如我在评论中提到的),您可以使用
pip freeze>requirements.txt
保存一个文本文件,其中包含来自virtualenv内部pip的所有软件包需求。然后,您可以使用命令pip install-r requirements.txt
将这些软件包安装到新的virtualenv中,为什么不干脆pip freeze>requirements.txt
,然后在另一台计算机上使用pip install-r requirements.txt
重新创建venv?问题不只是pip freeze>然后在另一台计算机上使用pip install-r requirements.txt重新创建venv?问题在于pythonpathThank。这通常是处理依赖关系的方式吗?我是Python新手,对Python了解不多。我搜索了一下,发现了另一个名为distutils的工具。distutils
用于构建和安装包,例如,我可以构建自己的代码库,然后使用distutils或setuptools将其捆绑到包中。当您想要安装软件包时,安装它们的主要方法是使用pip(假设它们在pypi软件包集合中)。如果它们不在pypi中,则通常需要下载一些代码,其中包含setup.py文件,然后使用python setup.py install
进行安装。这是一种更复杂的方法,如果可以的话,我建议您使用pip:)而且:使用virtualenv绝对是一个好主意,它有助于将所有库分开,特别是如果您希望使用同一库的不同版本(例如,一个项目上的库1.0,另一个项目上的库1.1)。谢谢。这通常是处理依赖关系的方式吗?我是Python新手,对Python了解不多。我搜索了一下,发现了另一个名为distutils的工具。distutils
用于构建和安装包,例如,我可以构建自己的代码库,然后使用distutils或setuptools将其捆绑到包中。当您想要安装软件包时,安装它们的主要方法是使用pip(假设它们在pypi软件包集合中)。如果它们不在pypi中,则通常需要下载一些代码,其中包含setup.py文件,然后使用python setup.py install
进行安装。这是一种更复杂的方法,如果可以的话,我建议您使用pip:)而且:使用virtualenv绝对是一个好主意,它有助于将所有库分开,特别是如果您希望使用同一库的不同版本(例如,一个项目上的库1.0,另一个项目上的库1.1)。