Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/348.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python osx测试未加载模块鸡蛋_Python_Macos_Networkx - Fatal编程技术网

Python osx测试未加载模块鸡蛋

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

我有一组使用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 "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”。