簡體   English   中英

扭曲的試驗,PYTHONPATH和sys.path

[英]Twisted trial, PYTHONPATH and sys.path

我正在嘗試在http://twistedmatrix.com/documents/current/core/howto/trial.html上重現“使用Twisted進行測試驅動開發”中的示例。

我創建了文件:

calculus/__init__.py
calculus/base_1.py
calculus/test/__init__.py
calculus/test/test_base_1.py

我修改了PYTHONPATH:

[xxx@zzz calculus]$ PYTHONPATH="$PYTHONPATH:`pwd`/.."

我援引了試用版:

[xxx@zzz twistedm]$ trial calculus.test.test_base_1
calculus
  test
    test_base_1 ...                                                     [ERROR]

===============================================================================
[ERROR]
Traceback (most recent call last):
  File "/usr/lib/python2.7/site-packages/twisted/trial/runner.py", line 602, in loadByNames
    things.append(self.findByName(name))
  File "/usr/lib/python2.7/site-packages/twisted/trial/runner.py", line 406, in findByName
    return reflect.namedAny(name)
  File "/usr/lib/python2.7/site-packages/twisted/python/reflect.py", line 307, in namedAny
    raise ObjectNotFound('%r does not name an object' % (name,))
twisted.python.reflect.ObjectNotFound: 'calculus.test.test_base_1' does not name an object

calculus.test.test_base_1
-------------------------------------------------------------------------------
Ran 1 tests in 0.199s

FAILED (errors=1)

Python沒找到我的模塊。

但是如果我調用python shell並嘗試導入我的模塊,python會導入它們。

然后我添加了一行“ sys.path.append('/ home / xxx / twistedm / calculus / ..') ”到文件中“ /usr/lib/python2.7/site-packages/twisted/python/reflect.py ”。 現在一切正常。

所以我發現試驗在sys.path中查找模塊,在命令行上設置PYTHONPATH對sys.path沒有影響。

問題是如何在調用試驗時從命令行修改sys.path。

或者:

PYTHONPATH="${PWD}" trial calculus

要么:

python -m twisted.trial calculus

或者寫一個setup.py並安裝你的源代碼(可能是帶有pip -e的virtualenv)然后只需:

trial calculus

我剛剛發現在〜/ .bashrc中設置PYTHONPATH,甚至是空的,然后采購它解決了這個問題。

所以,在〜/ .bashrc中添加一行:

export PYTHONPATH=""

然后在終端中運行命令:

source ~/.bashrc

現在試用甚至沒有修改PYTHONPATH,即空PYTHONPATH。

暫無
暫無

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

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