python - 如何修复python中找不到的模块
问题描述
我有我的 target.py 文件,Starterpack/ModulesAndPackages/target.py
我有我的脚本文件Starterpack/Scripts/Bad.py
我ModulesAndPackages
的文件夹中有该文件,但是当我输入脚本文件时__init__.py
仍然出现此错误。No module named ModulesAndPackages
from ModulesAndPackages.target import Target
我试过了sys.path.append()
,sys.path.insert()
但没有奏效。在我的编辑器中没有错误,但是当我运行它时,它给出了错误。
脚本文件:
mandp_dir = "./ModulesAndPackages"
scripts_dir = "./Scripts"
main_dir = ".."
os.chdir(Path(main_dir))
from ModulesAndPackages.target import Target
目标.py 文件:
import time
import os
import keyboard
class Target():
def __init__(self, ip, port, packetsize, time=None):
self.ip = ip
self.port = port
self.packetsize = packetsize
self.time = time
def attack(self):
pass
如果我添加了__init__.py
文件,我希望它可以工作,但事实并非如此。
解决方案
您可能想将目录添加到 python 搜索的路径中,而不是更改当前目录,例如:
scripts_dir = "./Scripts"
main_dir = ".."
sys.path.append(Path(main_dir))
另外,检查一下:python-best-way-to-add-to-sys-path-relative-to-the-current-running-script
推荐阅读
- c++ - 问题在于我通过套接字传输的类中的字符串
- c# - 以 202-Accepted 状态回复通知
- jquery - 尝试选择更改变量的类时出现错误“无法识别的表达式”
- ruby - 资源有效地找到一种可能的数字组合以达到给定的总和
- angular - Angular 9 在包导入范围方面的变化
- row-number - 使用左连接 kql 获取行数?无法在当前上下文中调用函数“row_number”。细节:行集必须序列化
- python - 存储权限 buildozer android 11
- wordpress - Wordpress - 启用订阅者(前端自定义表单)更改他们的电子邮件地址
- javascript - 使用正则表达式 vue JS 的 URL 验证
- python - 从列表中删除包含列表中特定值的数据框行