Python osx测试未加载模块鸡蛋
我有一组使用networkx模块的测试,它作为python鸡蛋安装在我的/Library/python/2.7/site-packages/文件夹中 在python解释器中加载它不会导致任何问题:Python osx测试未加载模块鸡蛋,python,macos,networkx,Python,Macos,Networkx,我有一组使用networkx模块的测试,它作为python鸡蛋安装在我的/Library/python/2.7/site-packages/文件夹中 在python解释器中加载它不会导致任何问题: pkerp@toc:~/projects/forgi$ python Python 2.7.6 (v2.7.6:3a1db0d2747e, Nov 10 2013, 00:42:54) [GCC 4.2.1 (Apple Inc. build 5666) (dot 3)] on darwin Type
pkerp@toc:~/projects/forgi$ python
Python 2.7.6 (v2.7.6:3a1db0d2747e, Nov 10 2013, 00:42:54)
[GCC 4.2.1 (Apple Inc. build 5666) (dot 3)] on darwin
Type "help", "copyright", "credits" or "license" for more information.
>>> import networkx
>>>
但是,当我尝试使用nosetests运行测试时,它会抱怨找不到模块:
pkerp@toc:~/projects/forgi$ nosetests test.forgi.utilities.graph_test:GraphTest.test_shortest_cycle
E
======================================================================
ERROR: Failure: ImportError (No module named networkx)
----------------------------------------------------------------------
Traceback (most recent call last):
File "/sw/lib/python2.7/site-packages/nose/loader.py", line 413, in loadTestsFromName
addr.filename, addr.module)
File "/sw/lib/python2.7/site-packages/nose/importer.py", line 47, in importFromPath
return self.importFromDir(dir_path, fqname)
File "/sw/lib/python2.7/site-packages/nose/importer.py", line 94, in importFromDir
mod = load_module(part_fqname, fh, filename, desc)
File "/Users/pkerp/projects/forgi/test/forgi/utilities/graph_test.py", line 2, in <module>
import networkx as nx
ImportError: No module named networkx
----------------------------------------------------------------------
Ran 1 test in 0.000s
FAILED (errors=1)
pkerp@toc:~/projects/forgi$nosetests test.forgi.utilities.graph\u test:GraphTest.test\u最短周期
E
======================================================================
错误:失败:导入错误(没有名为networkx的模块)
----------------------------------------------------------------------
回溯(最近一次呼叫最后一次):
loadTestsFromName中的文件“/sw/lib/python2.7/site packages/nose/loader.py”,第413行
addr.filename,addr.module)
文件“/sw/lib/python2.7/site packages/nose/importer.py”,第47行,在importFromPath中
返回self.importFromDir(目录路径,fqname)
importFromDir中的文件“/sw/lib/python2.7/site packages/nose/importer.py”,第94行
mod=加载模块(部件名称、fh、文件名、描述)
文件“/Users/pkerp/projects/forgi/test/forgi/utilities/graph_test.py”,第2行,在
将networkx导入为nx
ImportError:没有名为networkx的模块
----------------------------------------------------------------------
在0.000秒内运行了1次测试
失败(错误=1)
你知道为什么会这样吗?鼻测试使用不同的PYTHONPATH?我最终通过使用python调用鼻测试实现了这一点:
/opt/local/bin/python /usr/local/bin/nosetests test.forgi.utilities.graph_test:GraphTest.test_shortest_cycle
可能已经安装了多个版本的Python,并且正在使用nosetest调用错误的版本?例如,一个在/usr/bin中,另一个在/sw/bin中?这似乎正是发生的事情,有没有办法告诉nose使用位于/usr/bin下的一个?最好的方法是在/usr/bin中使用Python(重新)安装nose。对于这些愚蠢的问题,很抱歉,但是有没有一种公认的方法?我很确定我是用macports安装的,但是运行“uninstall py nose”并没有什么作用。当我这么做的时候,我还想问一下为什么每个python版本加载的包会有所不同?它们看起来都是同一个PYTHONPATH(我希望如此),而且它们都是2.7.x版本!这真是个骗局。只有我做了“python/opt/local/bin/nosetests”。