2012-01-03 15 views
22

これはthisの後続の質問かもしれません。numupをsetuptoolsとの依存関係としてインストールする

私はsetuptoolsを使用してパッケージをインストールしています。依存として私はnumpyを記載しました。私はPython2.7を使用しています私は、このsetup.pyファイルで

python setup.py install 

を行うときに:私は何をする必要がありますどのような

ImportError: No module named numpy.distutils 

:私はこのエラーメッセージで終わる

from setuptools import setup 

setup(name = "test_pack", install_requires = ["numpy"]) 

依存関係としてnumpyを含めるにはpython-devをインストールしないでインストールしますか?


python setup.py installの完全な出力:

running install 
running bdist_egg 
running egg_info 
writing requirements to test_pack.egg-info/requires.txt 
writing test_pack.egg-info/PKG-INFO 
writing top-level names to test_pack.egg-info/top_level.txt 
writing dependency_links to test_pack.egg-info/dependency_links.txt 
reading manifest file 'test_pack.egg-info/SOURCES.txt' 
writing manifest file 'test_pack.egg-info/SOURCES.txt' 
installing library code to build/bdist.linux-x86_64/egg 
running install_lib 
creating build/bdist.linux-x86_64/egg 
creating build/bdist.linux-x86_64/egg/test_pack 
copying build/lib/test_pack/__init__.py -> build/bdist.linux-x86_64/egg/test_pack 
copying build/lib/test_pack/mod.py -> build/bdist.linux-x86_64/egg/test_pack 
byte-compiling build/bdist.linux-x86_64/egg/test_pack/__init__.py to __init__.pyc 
byte-compiling build/bdist.linux-x86_64/egg/test_pack/mod.py to mod.pyc 
creating build/bdist.linux-x86_64/egg/EGG-INFO 
copying test_pack.egg-info/PKG-INFO -> build/bdist.linux-x86_64/egg/EGG-INFO 
copying test_pack.egg-info/SOURCES.txt -> build/bdist.linux-x86_64/egg/EGG-INFO 
copying test_pack.egg-info/dependency_links.txt -> build/bdist.linux-x86_64/egg/EGG-INFO 
copying test_pack.egg-info/requires.txt -> build/bdist.linux-x86_64/egg/EGG-INFO 
copying test_pack.egg-info/top_level.txt -> build/bdist.linux-x86_64/egg/EGG-INFO 
creating 'dist/test_pack-0.0.0-py2.7.egg' and adding 'build/bdist.linux-x86_64/egg' to it 
removing 'build/bdist.linux-x86_64/egg' (and everything under it) 
Processing test_pack-0.0.0-py2.7.egg 
Copying test_pack-0.0.0-py2.7.egg to /home/woltan/local/lib/python2.7/site-packages 
Adding test-pack 0.0.0 to easy-install.pth file 

Installed /home/woltan/local/lib/python2.7/site-packages/test_pack-0.0.0-py2.7.egg 
Processing dependencies for test-pack==0.0.0 
Searching for numpy 
Reading http://pypi.python.org/simple/numpy/ 
Reading http://numpy.scipy.org 
Reading http://sourceforge.net/project/showfiles.php?group_id=1369&package_id=175103 
Reading http://numeric.scipy.org 
Best match: numpy 1.6.1 
Downloading http://pypi.python.org/packages/source/n/numpy/numpy-1.6.1.zip#md5=462c22b8eb221c78ddd51de98fbb5979 
Processing numpy-1.6.1.zip 
Running numpy-1.6.1/setup.py -q bdist_egg --dist-dir /tmp/easy_install-AoFmdV/numpy-1.6.1/egg-dist-tmp-JH1j2R 
non-existing path in 'numpy/distutils': 'site.cfg' 
Could not locate executable g77 
Found executable /opt/solstudio12.2/bin/f77 
gnu: no Fortran 90 compiler found 
gnu: no Fortran 90 compiler found 
Found executable /opt/intel/Compiler/11.1/073/bin/intel64/ifort 
Could not locate executable lf95 
Could not locate executable pgf90 
Could not locate executable pgf77 
Found executable /opt/solstudio12.2/bin/f90 
Found executable /opt/solstudio12.2/bin/f95 
Could not locate executable fort 
_configtest.c:1: warning: conflicting types for built-in function ‘exp’ 
_configtest.o: In function `main': 
/tmp/easy_install-AoFmdV/numpy-1.6.1/_configtest.c:6: undefined reference to `exp' 
collect2: ld returned 1 exit status 
_configtest.c:1: warning: conflicting types for built-in function ‘exp’ 
_configtest.c:1:20: error: Python.h: No such file or directory 
_configtest.o: In function `main': 
/tmp/easy_install-AoFmdV/numpy-1.6.1/_configtest.c:6: undefined reference to `exp' 
collect2: ld returned 1 exit status 
_configtest.c:1:20: error: Python.h: No such file or directory 

答えて

3

あなたがnumpyのためのバイナリディストリビューション(プリコンパイル/構築された)へのアクセス権を持っていない限り、あなたはそれとして利用できるPythonのヘッダを持っている必要がありますが彼らは気を失うことがあります。このため、ほとんどのパッケージマネージャには、これらのパッケージのコンパイル済みバージョンが付属しています。たとえば、apt-get install python-numpy、それをあなたのvirtualenvにリンクすることができます。そして、install_requires=['numpy']でプログラムをインストールしようとすると、それは既にインストールされているはずです。

+1

のようなものは、それをインストールする前に、 'numpy'を構築するために、' setuptools'を伝える方法はありませんか? 'numpy'をビルドしてインストールすると、それ自体が完全に... – Woltan

+0

私は私が従わないことを申し訳ありません。あなたの貼り付けられた出力から** ** numpyを構築しようとしています。 –

+0

そうですが、 'numup'を自分でダウンロードしてインストールできます(' setuptools'ではなく)。私が 'setuptools'でそれをビルドしてインストールしようとする場合にのみ、それは壊れます。 – Woltan

2

numpyをインストールするには、setuptoolsがパッケージをダウンロードし、ソースからコンパイルします。ただし、numpyをコンパイルするにはいくつかの前提条件がありますが、hereを確認することができます。

_configtest.c:1:20: error: Python.h: No such file or directory 

このエラーは、(あなたは/ DebianのUbuntuのを使用している場合)は、少なくともあなたのpython-devパッケージがインストールされていないことを示しています。

5

これは既知の問題です。numpy/numpy #2434で追跡されます。

numpysetup_requiresを追加しました。 setup_requiresinstall_requiresの両方を使用すると、最新のバージョンsetuptoolsで問題なく動作しているようです。

だから、あなたのsetup.pyになります

setup(
    # Your setup specific stuff here 
    setup_requires=["numpy"], # Just numpy here 
    install_requires=["numpy"], # Add any of your other dependencies here 
) 
+0

numpyを 'setup_requires'に追加するだけでは十分ではありませんでした。また、 'python setup.py unstall'を2回実行してnumpyを正常にインストールしなければなりませんでした。http://stackoverflow.com/questions/21605927/why-doesnt-setup-requires-work-properly-for-numpy – asmaier

関連する問題