来自命令行的 multipledispatch ModuleNotFoundError 运行

multipledispatch ModuleNotFoundError running from command-line

运行 来自命令行的 locust (locust.io) 脚本。

locust 调用 main.py 具有以下导入:

from locust import HttpUser, between, task
from StreamLoader.stream_generator import *    # thought this brings in everything

Packer.py 有这些导入:

from multipledispatch import dispatch
from PackedItem import PackedItem

StreamGenerator.py 有:

import hashlib
from StreamLoader.Packer import Packer
from aes_encryption import AesEncryption

我使用 pip 安装 multipledispatch,当我从 PyCharm 中 运行 时它工作正常,但从命令行我得到以下信息。

  File "C:\Users\guyl\PycharmProjects\engine-load-tests\engine_load_tester_locust\main.py", line 2, in <module>
    from StreamLoader.stream_generator import *
  File "C:\Users\guyl\PycharmProjects\engine-load-tests\StreamLoader\stream_generator.py", line 2, in <module>
    from StreamLoader.Packer import Packer
  File "C:\Users\guyl\PycharmProjects\engine-load-tests\StreamLoader\Packer.py", line 1, in <module>
    from multipledispatch import dispatch
ModuleNotFoundError: No module named 'multipledispatch'

这是我到目前为止尝试过的方法:

  1. 将目录添加到 PYTHONPATH 环境变量
  2. 在每个包中添加空 __init__.py 个文件

不过,如果我真的 pip install 编辑了模块,这一切似乎都是不必要的。


下面的回答使我不再看到 multipledispatch 的错误。但是,我现在看到缺少模块错误:

  File "C:\Users\guyl\PycharmProjects\engine-load-tests\engine_load_tester_locust\main.py", line 2, in <module>
    from StreamLoader.stream_generator import *
  File "C:\Users\guyl\PycharmProjects\engine-load-tests\StreamLoader\stream_generator.py", line 2, in <module>
    from Packer import Packer
ModuleNotFoundError: No module named 'Packer'

为清楚起见,我正在 运行ning 来自 locust 的代码,它调用此处描述的 Python 代码。 [主持人 - 这个问题变得很长。可以吗?]

PyCharm 自动使用虚拟环境,但是当您从命令行 运行 时,虚拟环境未打开。

只需按照以下步骤操作即可:

  1. cd your_working_directory
  2. environment_name/Scripts/activate if on Windows 其中 environment_name 是 PyCharm 虚拟环境的名称

environment_name/bin/activate 如果 MacOS

------------编辑------------------------
要回答新问题,请尝试使用 pip freeze 然后查看安装了哪些包。然后安装你想要的任何缺少的依赖项。