如何解决从命令行运行的 multipledispatch ModuleNotFoundError
从命令行运行 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",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'
这是我迄今为止尝试过的:
- 将目录添加到 PYTHONPATH 环境变量
- 在每个包中添加空的
__init__.py
文件
不过,如果我真的pip install
编辑了模块,这一切似乎都没有必要。
下面的答案使我不再看到 multipledispatch
的错误。但是,我现在看到缺少模块错误:
File "C:\Users\guyl\PycharmProjects\engine-load-tests\engine_load_tester_locust\main.py",in <module>
from Packer import Packer
ModuleNotFoundError: No module named 'Packer'
为清楚起见,我正在运行 locust
中的代码,该代码调用此处描述的 Python 代码。 [版主 - 这个问题越来越长了。可以吗?]
解决方法
PyCharm 自动使用虚拟环境,但当您从命令行运行时,虚拟环境并未打开。
只需按照以下步骤操作:
cd your_working_directory
-
environment_name/Scripts/activate
如果在Windows
上,其中environment_name
是 PyCharm 虚拟环境的名称
或者 environment_name/bin/activate
如果在 MacOS
-------------EDIT------------------------
要回答新问题,请尝试使用 pip freeze
,然后查看安装了哪些软件包。然后安装所需的任何缺少的依赖项。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。