簡體   English   中英

如何組織一個python項目

[英]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.

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