簡體   English   中英

如何將自己的python模塊添加到運行時環境

[英]How to add own python modules to runtime environment

我的 python 項目由許多模塊組成,相互之間有導入語句。 在我的 Eclipse PyDev 環境中,這些導入語句運行良好,但是當將其移植到我的 Raspberry 時,運行時環境無法加載相關模塊。

我已經配置了 PYTHONPATH 以便我的項目的根目錄 (/home/pi/Desktop/Projects/Catatumbo) 列在sys.path

['/var/www/upload/Projects/Catatumbo',
 '/home/pi/Desktop/Projects/Catatumbo',
 '/usr/lib/python35.zip',
 '/usr/lib/python3.5',
 '/usr/lib/python3.5/plat-arm-linux-gnueabihf',
 '/usr/lib/python3.5/lib-dynload',
 '/home/pi/.local/lib/python3.5/site-packages',
 '/usr/local/lib/python3.5/dist-packages',
 '/usr/lib/python3/dist-packages']

項目結構如下:

-core
--adafruit
---forecast (That's where the utility class resides)
-forecast
--adafruit  (That's where the script resides)

雖然通過以下方式從項目根目錄啟動腳本:

sudo python3 forecast/adafruit/adafruit_forecast.py

仍然導致以下錯誤:

File "forecast/adafruit/adafruit_forecast.py", line 35, in <module>
    from core.adafruit.forecast.forecast_colors import ForecastNeoPixelColors
ImportError: No module named 'core'

感謝幫助!

通過閱讀這篇有用的文章, Kaya 的評論使我做出了決定:

相對導入使用到要導入的所需模塊的相對路徑(從當前模塊的路徑開始)。 有兩種類型的相對導入:

顯式相對導入遵循 from 格式。 導入 X,其中以 dots 為前綴。 表示向上遍歷多少個目錄。 一個點。 對應當前目錄; 兩個點.. 表示向上一個文件夾; 等等。一個隱式的相對導入就好像當前目錄是 sys.path 的一部分一樣。 隱式相對導入僅在 Python 2 中受支持。它們在 PYTHON 3 中不受支持。

這樣做,您將遇到'Parent module'' not loaded, cannot perform relative import' 的問題 將腳本作為模塊運行將最終解決問題:

Use python -m package.module instead of python package/module.py

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM