這個問題在這里已經有了答案: PyCharm 中未解決的參考問題 25 個答案 9 小時前關閉。
我的專案的 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
依賴項如下:
- GUI.py 使用 Correcteur.py
- Loader.py 使用 GUI.py
我正在為這個專案使用兩臺計算機,一臺使用 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
所以我嘗試將“code”、“src”和“ui”添加到我的系統路徑中,但我仍然有錯誤。毫無疑問,我做了一些對 sys.path 不起作用的事情,但我不知道是什么。你能幫我解決這個問題嗎?
編輯:這就是我使用 pathlib 將目錄添加到我的 syspath 的方式。
加載器.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
uj5u.com熱心網友回復:
您的添加方法sys.path應該有效。主要問題是您將pathlib.Path物件添加到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,它錯誤地匯入了該模塊,因此我建議您將包更改為具有不同的名稱。
轉載請註明出處,本文鏈接:https://www.uj5u.com/gongcheng/429200.html
標籤:Python python-3.x 视觉工作室代码 pycharm 包裹
上一篇:元素陣列緩沖區不影響結果影像
下一篇:PyTorch安裝-畫中畫-錯誤
