首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >扭曲试验、PYTHONPATH和sys.path

扭曲试验、PYTHONPATH和sys.path
EN

Stack Overflow用户
提问于 2017-02-23 20:48:27
回答 2查看 1.1K关注 0票数 4

我正在尝试重现http://twistedmatrix.com/documents/current/core/howto/trial.html的“Twisted测试驱动开发”中的示例。

我创建了文件:

代码语言:javascript
复制
calculus/__init__.py
calculus/base_1.py
calculus/test/__init__.py
calculus/test/test_base_1.py

我修改了PYTHONPATH:

代码语言:javascript
复制
[xxx@zzz calculus]$ PYTHONPATH="$PYTHONPATH:`pwd`/.."

我提起了审判:

代码语言:javascript
复制
[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并尝试导入我的模块,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。

EN

回答 2

Stack Overflow用户

发布于 2017-02-24 14:47:56

以下任一项:

代码语言:javascript
复制
PYTHONPATH="${PWD}" trial calculus

或者:

代码语言:javascript
复制
python -m twisted.trial calculus

或者编写一个setup.py并安装您的源代码(可能会安装到带有pip -e的虚拟环境中),然后只需:

代码语言:javascript
复制
trial calculus
票数 2
EN

Stack Overflow用户

发布于 2017-02-23 21:14:04

我刚刚发现,在~/..bashrc中设置PYTHONPATH,甚至是空的,然后将其外包,就可以解决这个问题。

因此,在~/..bashrc中插入一行:

代码语言:javascript
复制
export PYTHONPATH=""

然后在终端中运行命令:

代码语言:javascript
复制
source ~/.bashrc

现在试用甚至不用修改PYTHONPATH,即与空PYTHONPATH。

票数 -2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/42425901

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档