在虚拟环境中找不到contextlib

时间:2019-02-18 23:16:51

标签: python virtualenv

我有一个Python脚本,可以将其从数据库中提取出来并显示在excel电子表格中。因为需要多个人此脚本,所以我将脚本放置在网络驱动器上。为了运行该脚本,我还在工作站上的文件夹中创建了一个虚拟环境,然后将其复制到网络位置。我有一个批处理文件,该文件使用Python的虚拟环境版本运行脚本。

当我在工作站上(从网络驱动器)运行批处理文件时,一切正常。当另一位未在其工作站上安装Python的用户运行批处理文件时,他们收到以下错误:

ModuleNotFoundError:没有名为“ contextlib”的模块

错误的追溯来自:

virtualenv \ lib \ site.py

virtualenv \ lib \ importlib \ util.py

创建虚拟环境时是否缺少某些内容?为了创建它,我使用了以下命令(在Windows上):

mkdir virtualenv
virtualenv virtualenv
\virtualenv\Scripts\activate
pip install [packages required for script]]
\virtualenv\Scripts\deactivate

非常感谢您的帮助。

1 个答案:

答案 0 :(得分:0)

感谢您的帮助。事实证明,virtualenv并没有达到我的预期。虚拟环境不能移植到其他机器/环境中。

我最终选择了pyinstaller将脚本打包到应用程序中。这非常简单快捷。

要安装pyinstaller并创建应用程序,我只需按照此处的说明进行操作:

https://www.pyinstaller.org/