[英]How to organize a python project
我是 python 的新手,並試圖弄清楚如何以“正確的方式”做事並遇到以下問題:
我的項目的結構看起來有點像這樣:
├─packageA
│ functions.py
│ __init__.py
│
└─tests
some_tests.py
packageA/__init__.py
是空的。
packageA/functions.py
看起來像這樣:
def some_function(x):
return x*x
最后, tests/some_tests.py
:
import packageA.functions
if __name__ == '__main__':
print(packageA.functions.some_function(2))
如果我使用 pycharm 運行 test.py 它工作正常。 但是,當我打開控制台並通過運行python.exe ./tests/some_tests.py
啟動它時,我得到
Traceback (most recent call last):
File ".\tests\some_tests.py", line 1, in <module>
import packageA.functions
ModuleNotFoundError: No module named 'packageA'
在寫這篇文章時,我發現 pycharm 將源文件夾添加到 PYTHONPATH - 當我關閉它時,我得到了同樣的錯誤。 上面的文件夾結構是構建python項目的明智方法嗎? 如果不是,應該如何組織?
有幾種選擇。 但是,在類似的 SO 問題中接受的答案並不理想。
以下答案通過在sys.path
列表的開頭顯式添加父目錄路徑來解決您的問題。
import os, sys, inspect
currentdir = os.path.dirname(os.path.abspath(inspect.getfile(inspect.currentframe())))
parentdir = os.path.dirname(currentdir)
sys.path.insert(0, parentdir)
import packageA.functions
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.