我在Starterpack/ModulesAndPackages/target.py
中有我的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
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
文件,我希望它能正常工作,但是没有。
答案 0 :(得分:0)
也将__init__.py
文件添加到您的StarterPack文件夹中,并使用from StarterPack.ModulesAndPackages.target import yourFunctionName
答案 1 :(得分:0)
您可以尝试将其他路径添加到sys.path
:
import os, sys
from pathlib import Path
main_dir = ".."
sys.path.append("..")
from ModulesAndPackages.target import Target
如果您只是为了进行一些小的测试而这样做,那没关系。
但是:我不鼓励在大多数项目中这样做,因为这通常不是很好的方法。相反,您的脚本应与ModulesAndPackages
处于同一级别,以便from ModulesAndPackages.target import Target
正确导入:
├── ModulesAndPackages
│ ├── __init__.py
│ └── target.py
└── script.py
这里script.py
将作为main
的起点。
答案 2 :(得分:0)
您可能想将目录添加到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