[英]Python sys.path vs import
我想了解的是什么是好的/壞的做法,以及為什么在進口方面。 我想了解的是社群對此事的一致看法,如果在某些 PEP 文件或類似文件中有任何此類看法。
我通常看到的是人們有一個 python 環境,使用 conda/pip 來安裝包,所有需要在代碼中做的就是使用“import X”(和變體)。 在我目前的理解中,這是做事的正確方法。
然而,每當 python 在我的公司與 C++ 交互時,它總是最終需要使用 sys.path 和絕對導入(但我們有一些標准化的路徑用作“基礎”,並且通常基於這些定義相對路徑)。
主要有2種情況:
我不完全確定我們是否可以為案例 #1 做一些更好的事情,但案例 #2 似乎完全沒有必要,並且基本上只是因為選擇不通過 python 包管理器部署 python 代碼而被迫。 選擇最終迫使我們在庫和用戶代碼上使用 sys.path。
這對我來說似乎很糟糕,因為基本上這種做事方式不允許我們完全管理我們的 python 環境(因為我們有一些我們導入的庫,甚至認為它們沒有在技術上安裝在環境中),這可能就是原因我對使用 sys.path 進行導入持否定態度。 但我需要確定我是否正確,如果是,我需要一些官方(或幾乎)文件來支持我的案例,如果我要對我們的程序提出修正建議。
對於您的場景 2,我的理解是您在一個地方有一些 C++ 和隨附的 python,並且一個單獨的 python 項目想要導入該 python。
您能否將導入的 python 構建為一個包並使用pip install path/to/package
將其安裝到您的環境中? 如果它是一個您將繼續編輯的包,您可以將-e
標志添加到pip install
以便在包更改時您的導入獲取最新代碼。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.