【问题标题】:multipledispatch ModuleNotFoundError running from command-line从命令行运行的multipledispatch ModuleNotFoundError
【发布时间】:2021-04-07 22:27:16
【问题描述】:

从命令行运行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 installed 模块,这一切似乎都是不必要的。


下面的答案导致我不再看到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'

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

【问题讨论】:

    标签: python pip locust modulenotfounderror multiple-dispatch


    【解决方案1】:

    PyCharm 自动使用虚拟环境,但是当你从命令行运行时,虚拟环境并没有打开。

    只需按照以下步骤操作:

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

    或者environment_name/bin/activateMacOS

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

    【讨论】:

    • 该建议很有帮助;用multipledispatch 解决了这个问题,但又出现了一个问题。我会把它贴在原帖中,这样更容易阅读。
    • 我应该接受这个答案并创建一个新问题吗?
    • 当然可以接受。我会审查你的新问题。这个问题越来越难读了,所以如果你能提出一个新的问题那就太好了。
    猜你喜欢
    • 2022-08-08
    • 1970-01-01
    • 2018-01-30
    • 1970-01-01
    • 2013-04-11
    • 1970-01-01
    • 1970-01-01
    • 2014-11-07
    • 2013-10-17
    相关资源
    最近更新 更多