Python Virtualenv找不到导入的模块

Python Virtualenv找不到导入的模块,python,virtualenv,Python,Virtualenv,我有一个用virtualenv打包的项目。它安装了setuptools&pipfine,并设置了所有必要的文件夹。我运行了source-bin/activate,并为我的项目安装了必要的库:xmlutils,configparser 我将项目文件夹压缩成zip文件,然后尝试在另一台计算机上使用它。我能够毫无问题地运行源代码bin/activate。但是,一旦我运行脚本,就找不到模块xmlutils。我深入研究了项目的“libs/site-packages”文件夹,它显然就在那里 是因为我必须在另

我有一个用virtualenv打包的项目。它安装了setuptools&pipfine,并设置了所有必要的文件夹。我运行了
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
注意两件事:

  • 这是实验性的,不能保证有效
  • 如果向virtualenv添加任何新包,则必须再次运行上述命令

  • 此外(正如我在评论中提到的),您可以使用
    pip freeze>requirements.txt
    保存一个文本文件,其中包含来自virtualenv内部pip的所有软件包需求。然后,您可以使用命令
    pip install-r requirements.txt

    将这些软件包安装到新的virtualenv中。构建virtualenv时,它绑定到特定路径,这意味着您无法重命名或移动它。如果您希望创建可移动的virtualenv,则可以使用文档中给出的
    --relocate
    选项

    使virtualenv可重新定位所需的命令是:

    virtualenv --relocatable ENV
    
    注意两件事:

  • 这是实验性的,不能保证有效
  • 如果向virtualenv添加任何新包,则必须再次运行上述命令

  • 此外(正如我在评论中提到的),您可以使用
    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)。