2012-01-09 27 views

回答

1

yql/__init.py,你會發現這條線:

sys.path.insert(0, os.path.join(os.path.dirname(__file__), '../')) 

這是插入在sys.path前面的YQL路徑。

如果yql雞蛋文件是在你的PYTHONPATH,那麼你可以註釋掉或刪除sys.path.insert語句和包應該仍然有效。

+0

謝謝你的幫助!將註釋掉sys.path.insert(0,os.path.join(os.path.dirname(__ file__),'../'))使得如果另一臺機器正在運行該程序並且我引用了本地目錄作爲sys.path [0],它將無法正常工作,因爲不能假定其他機器也在運行修改過的__init__.py文件?你會推薦簡單地使用sys.path [1]而不是註釋掉行來保持兼容性嗎? – 2012-01-09 23:11:45

+0

你可能想要求python-yql的開發者刪除這一行,因爲它不是必須的(我認爲),並且自從[文檔說]以來是相當令人驚訝的行爲(http://docs.python.org/library/ sys.html#sys.path),「path [0] ...是包含用於調用Python解釋器的腳本的目錄。」或者,你可以使用'os.path.split(os.path.realpath(__ file __))[0]'而不是'sys.path [0]'。 – unutbu 2012-01-09 23:18:45

+0

這似乎是一個有效的觀點。 __file__在os.path.split(os.path.realpath(__ file __))中代表什麼?)[0]? – 2012-01-09 23:22:22