如何修复python

时间:2019-08-06 09:11:14

标签: python python-3.x

我在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文件,我希望它能正常工作,但是没有。

3 个答案:

答案 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