【问题标题】:Manage modules between virtual environments in python在 python 中管理虚拟环境之间的模块
【发布时间】:2023-01-09 03:30:43
【问题描述】:

也许这个问题已经存在或者我试图获得更好的解决方案。

我有一个使用 python 的 linux 服务器。在该服务器中,我有几个具有不同脚本的虚拟环境。为了不生成或重复信息,我有一个名为 General 的文件夹,其中包含我通常会在不同脚本(虚拟环境)中使用的所有 python 脚本,例如一些类、发送 snmp 陷阱的脚本、带摄像头的 axis_api 等。结构是那个:

home
|- General/
    |- venv/
    |- axis_operations.py
    |- readfile.py
    |- remote_operations.py
    |- snmptrap.py
    |- homeclass.py
|- AxisCamera/
    |- venv/
    |- axis_cameras_status.py
|- Stats/
    |- venv/
    |- getstatsfromremoteserver.py

在 axis_cameras_status.py 脚本中,我导入了 axis_operations.py。同时,在具有不同虚拟环境的其他路径中以及在该 venv 中的 axis_operations.py 被安装(请求)我导入请求。

当我尝试在它的虚拟环境中执行脚本 axis_cameras_status.py 时出现此错误(请求包仅安装在虚拟环境文件夹 General 中)。

(venv) user@server:~/AxisCamera> python axis_cameras_status.py Traceback (most recent call last):   File "axis_cameras_status.py", line 28, in <module>
    from axis_operations import AxisCamera   File "/home/General/axis_operations.py", line 16, in <module>
    import requests     #https://www.dataquest.io/blog/python-api-tutorial/ ModuleNotFoundError: No module named 'requests'

管理这一切的最佳选择是什么?有可能有一个文件夹(带有他们的虚拟环境)我有所有通用脚本,然后在每个虚拟环境中导入这些通用脚本?

谢谢

【问题讨论】:

    标签: python virtualenv python-import import-module


    【解决方案1】:

    听起来您想在运行 Python 代码时以某种方式利用两个虚拟环境,或者您可能希望将一个虚拟环境中的模块包含在另一个虚拟环境中。你不能做这两件事。无论您尝试运行什么代码,您运行代码的 Python 环境都必须包含您的代码所依赖的所有模块,无论代码来自何处。如果你有 4 个虚拟环境用于运行 4 个脚本,并且每个脚本都包含一些需要 requests 库的公共代码,那么所有 4 个环境都必须安装 requests 库。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2021-12-15
      • 1970-01-01
      • 2017-01-17
      • 2016-11-11
      • 1970-01-01
      • 1970-01-01
      • 2018-09-26
      • 1970-01-01
      相关资源
      最近更新 更多