簡體   English   中英

在import語句之前設置pythonpath

[英]set pythonpath before import statements

我的代碼是:

import scriptlib.abc
import scriptlib.xyz

def foo():
  ... some operations

但是scriptlib在其他目錄中,所以我必須在環境變量“PYTHONPATH”中包含該目錄。

無論如何,我可以在導入語句執行之前首先在環境變量“PYTHONPATH”中添加scriptlib目錄,如:

import sys
sys.path.append('/mypath/scriptlib')
import scriptlib.abc
import scriptlib.xyz

def foo():
  ... some operations

如果是,那么該值僅用於該命令提示符還是全局?

提前致謝

這將添加Python進程/實例的路徑(即正在運行的可執行文件)。 不會為任何其他Python進程修改該路徑。 另一個正在運行的Python程序將不會修改其路徑,如果您退出程序並再次運行,則路徑將不包括您之前添加的內容。 你在做什么通常是正確的。

set.py:

import sys
sys.path.append("/tmp/TEST")

loop.py

import sys
import time
while True:
  print sys.path
  time.sleep(1)

運行: python loop.py &

這將運行loop.py,連接到您的STDOUT,它將繼續在后台運行。 然后,您可以運行python set.py 每個都有一組不同的環境變量。 觀察loop.py的輸出沒有改變,因為set.py不會改變loop.py的環境。

關於進口的說明

Python導入是動態的,就像其他語言一樣。 沒有靜態鏈接。 導入是一個可執行行,就像sys.path.append...

正如此處的文檔中所述。
轉到Python XX/Lib並將這些行添加到site.py那里,

import sys
sys.path.append("yourpathstring")

這將更改您的sys.path以便在每次加載時,它將具有該值。

如前所述這里site.py

初始化期間會自動導入該模塊。 導入此模塊會將特定於站點的路徑附加到模塊搜索路徑並添加一些內置函數。

有關向sys.path添加某些路徑的其他可能方法,請參閱這些文檔

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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