[英]Import error for package, am i missing an __init__.py
我有一個具有以下布局的小型 python 項目:
my-project
├── src
│ ├── lib
│ └── app
│ └── data
│ └── car_sim.py
│
│
│
│
├── ptests
│ ├── src
│ └── lib
│ └── app
│ └── data
│ └── __init__.py
│ └── cprofile.py
cprofile.py 包含:
from src.lib.app.data.car_sim import carRules
def my_example_func():
#some-code
if __name__ == '__main__':
my_example_func()
當我使用以下命令運行cprofile.py時:
$> cd 我的項目
$> python ptests/src/lib/app/data/cprofile.py
它給出了錯誤:
ModuleNotFoundError: No module named 'src'
我錯過了什么嗎? 我需要讓它從根目錄(頂層)工作嗎?
如果您希望一個文件夾被識別為 package,在您的情況下,這將是 src,它需要包含
__ 初始化 __.py
基本上,您已經在標題中回答了您自己的問題。 該文件可以為空。 我強烈建議您閱讀有關模塊、包及其結構的 python 文檔。
我建議你把這個文件放在你需要調用的同一個文件目錄下。 它可以減少出錯的概率!
或者您可以在調用中寫入文件的完整路徑。就像:
from my-project.src.lib.app.data.car_sim import carRules.
或者你可以試試這個方法。 添加環境變量:
變量名:PYTHONPATH
Path - 項目的路徑,如:
(E:\PYTHON\my-project.src.lib.app.data.car_sim)
路徑解決方案是這個問題的常見解決方案,我認為你可以嘗試一下。 如果還是不能解決你的問題,我想你可以按照我的建議,把兩個.py
文件放在同一個目錄下,這樣你可以更直觀的閱讀信息,也不會是大概率當前的問題,希望能有所幫助你!
檢查這是否適合您。
import sys
sys.path.insert(0, "/path/my-project/src")
from src.lib.app.data.car_sim import carRules
def my_example_func():
#some-code
if __name__ == '__main__':
my_example_func()
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.