我遇到了一些腳本,這些腳本是我編寫的用於測試我編寫的測試解析器的路徑問題。看起來Python(27和3)在使用當前工作目錄作爲sys.path的一部分時,並不像IronPython那樣工作。因此,我的內部包裝路徑不起作用。如何解決Python和IronPython中的sys.path差異
這是我的包裝佈局。
MyPackage
__init__.py
_test
__init__.py
common.py
parsers
__init__.py
_test
my_test.py
我試圖從MyPackage目錄內調用腳本。
命令行語句:
蟒蛇./parsers/_test/my_test.py
IPY ./parsers/_test/my_test.py
位於我my_test.py文件import語句是。
from _test.common import TestClass
在Python情景我只得到MyPackage的/解析器/ _test追加到sys.path的目錄,以便結果MyPackage的無法找到。在IronPython場景中,MyPackage/parsers/_test目錄和MyPackage /位於sys.path中。如果我從_test目錄中調用測試(我不知道MyPackage),我可能會得到同樣的錯誤參考。即使我將測試文件整合到_test目錄中,我仍然會遇到此路徑問題。
我應該注意,我只是測試,如果我不喜歡的東西
import sys
import os
sys.path.append(os.getcwd())
這將正確加載。但我必須爲每個文件都做這件事。
有沒有辦法解決這種路徑問題,而無需執行以下操作。在每個文件中追加sys.path的相對路徑。
B.追加PATH包括MyPackage的(我不希望我的包作爲蟒蛇的一部分「全球」系統尋路)
非常感謝任何提示!
這絕對有效。這種做法違反了我的限制條件A.(我必須爲每個文件都這樣做)。但是這是一種標準做法嗎?我無法想象其他人也沒有這個問題......或者他們已經設計好了,所以這不是問題。或者我猜他們在環境中添加了路徑到他們的軟件包PYTHONPATH – Mike
您可以在系統範圍的site.py中添加路徑? – synthesizerpatel