我的项目的 python 模块有问题。这是我的项目树:
Documents/Projects/projet/
├── code
│ ├── datas
│ │ ├── Lexique383
│ │ │ └── Lexique383.tsv
│ │ └── Lexique383.zip
│ ├── __init__.py
│ ├── __pycache__
│ │ └── __init__.cpython-38.pyc
│ ├── src
│ │ ├── Correcteur.py
│ │ ├── __init__.py
│ │ ├── PoCCode.py
│ │ └── __pycache__
│ │ ├── Correcteur.cpython-38.pyc
│ │ └── __init__.cpython-38.pyc
│ └── ui
│ ├── GUI.py
│ ├── GUI.ui
│ ├── __init__.py
│ ├── Loader.py
│ └── __pycache__
│ └── GUI.cpython-38.pyc
依赖关系如下:
我正在为这个项目使用两台计算机,一台使用PyCharm,一台使用VSCode。问题是我使用PyCharm运行Loader.py配置,它向PYTHONPATH添加了内容根和源根。但是当我回到另一台计算机,想检查一切是否正常时,我遇到了这个错误:
Traceback (most recent call last):
File "Documents/Projects/projet/code/ui/Loader.py", line 4, in <module>
import GUI
File "Documents/Projects/projet/code/ui/GUI.py", line 13, in <module>
from code.src import Correcteur
ModuleNotFoundError: No module named 'code.src'; 'code' is not a package
所以我试图在我的系统路径中添加“代码”、“src”和“ui”,但我仍然有错误。毫无疑问,我做了一些不适用于sys.path的事情,但我无法弄清楚是什么。你能帮我解决这个问题吗?
编辑:这就是我如何使用路径库将目录添加到我的syspath。
Loader.py:
from PyQt5 import QtCore, QtGui, QtWidgets
from PyQt5.QtWidgets import QApplication
import sys
from pathlib import Path
sys.path.extend([
Path(__file__).parents[1].resolve(),
Path(__file__).parents[1].resolve() / "src"
])
print(sys.path)
import GUI
下面是我如何在GUI.py中导入Correcteur:
from code.src import Correcteur
您添加到< code>sys.path的方法应该有效。主要问题是您正在添加< code>pathlib。Path对象指向< code>sys.path,它只需要字符串。
如果您只是将试图添加的Path对象转换为字符串,那么简化版本的代码应该可以工作:
在Loader.py
from PyQt5 import QtCore, QtGui, QtWidgets
from PyQt5.QtWidgets import QApplication
import sys
from pathlib import Path
# Note the call to `str(...)` here
sys.path.insert(1, str(Path(__file__).parents[2].absolute()))
print(sys.path)
import GUI
此外,您得到的一些错误是因为Python有一个名为< code>code的内置模块,它错误地导入了这个模块,所以我建议将您的包更改为不同的名称。
我在让sikuli python单元测试工作时遇到了麻烦,希望能得到一些帮助。我在网上到处搜索,但是没有任何有用的东西。我的python知识非常有限,我想这没有什么帮助... 我用的是win7 32,sikuli 1.0 rc3 (r905),python 2.7.3 我正在尝试通过python运行sikuli单元测试(不使用命令行,只是作为一个python脚本来运行python gui)。除了别
我是新的Python,我已经安装在C:\ INFO2013-07-08 08:15:47,197server.py:593]默认:"GET/HTTP/1.1"500-INFO2013-07-08 08:28:22,289api_server.py:509]应用所有挂起的事务并保存数据存储INFO2013-07-08 08:28:22,289api_server.py:512]保存搜索索引2013-
问题内容: 我正在尝试在Python 2.7.2中使用并遇到奇怪的错误。 考虑以下目录结构: 具有以下代码: (在真实代码中有一个名称。) 尝试到时,产生以下错误: 我想念什么? 谢谢! 问题答案: 对于相对进口,您必须: a)使用相对名称 b)明确提供锚点 当然,您也可以只执行绝对导入:
我想在任何目录的任何脚本中导入自定义编写的函数,就像在任何脚本中导入请求模块一样。我正在运行Ubuntu和Python 3.9 编辑:我按照本教程完成了我的要求-https://packaging.python.org/tutorials/packaging-projects/
问题内容: 我正在尝试使用该软件包在R中导入python模块。该模块可以在这里找到。我克隆了存储库并运行成功。如果打开python shell,则可以导入。但是,当我尝试将其导入RStudio时,出现以下错误: 我在macOS Sierra版本10.12.6上并通过Anaconda安装了python 3.6。我也尝试过给出python的路径为: 当我从终端运行python时,我得到: 不确定pyt
问题内容: 如何枚举所有导入的模块? 例如,我想从以下代码中获取: 问题答案: 仅获取当前模块的所有导入的一种近似方法是检查globals()模块: 这不会返回本地导入,也不会返回非模块导入,例如。请注意,这将返回,因此如果你使用的话,将获得原始模块名称;如果你想要别名,则使用名称。