[英]How do I get the file location of libraries imported by Python
考慮到這行 Python 代碼:
import foo
然后如何找到包含要在 foo 中執行的源代碼的文件在磁盤上的位置?
(我在Win7上)
您可以在中找到信息
foo.__file__
請注意,並非所有模塊都來自文件。 一些模塊也直接編譯到解釋器中,這些模塊沒有__file__
屬性。
解釋器中包含的模塊列表可以在sys.builtin_module_names
中找到。
當模塊沒有與文件系統中文件的一對一映射時,我不確定__file__
的值。 具體來說,如果它正在加載在 ZIP 文件中找到的模塊,我不確定__file__
會是什么樣子。 (當我需要這樣的映射時,我使用了帶有 ("path/to/file.zip", "path/within/zip/module.pyc") 的元組,但這是手動遍歷 sys.path 的結果。 ) 如果只是將__file__
設置為None
,我不會感到驚訝。
當關於將加載哪個同名模塊存在問題時,它始終是在sys.path
上找到的第一個模塊。
在您首次導入 package 之前,可以使用sys.path.insert(0, some_dir)
手動調整。 (在環境中,這是使用PYTHONPATH設置的。)
理想情況下,您只需檢查PYTHONPATH
和/或sys.path
即可找出正在使用的內容。 如果加載了錯誤的,修復它的唯一方法是使用PYTHONPATH
或sys.path
。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.