我正在尝试从SciPy Docs安装示例ufunc但是当我运行python setup.py build
或python setup.py install
时,我会收到一些关于已弃用的NumPy API的警告。
当我运行python setup.py install
时,这是输出:
$ python setup.py install
running install
running build
running config_cc
unifing config_cc, config, build_clib, build_ext, build commands --compiler options
running config_fc
unifing config_fc, config, build_clib, build_ext, build commands --fcompileroptions
running build_src
build_src
building extension "npufunc_directory.npufunc" sources
build_src: building npy-pkg config files
running build_ext
customize UnixCCompiler
customize UnixCCompiler using build_ext
building 'npufunc_directory.npufunc' extension
compiling C sources
C compiler: gcc -fno-strict-aliasing -ggdb -O2 -pipe -Wimplicit-function-declaration -fdebug-prefix-map=/usr/src/ports/python/python-2.7.8-1.x86_64/build=/usr/src/debug/python-2.7.8-1 -fdebug-prefix-map=/usr/src/ports/python/python-2.7.8-1.x86_64/src/Python-2.7.8=/usr/src/debug/python-2.7.8-1 -DNDEBUG -g -fwrapv -O3 -Wall -Wstrict-prototypes
creating build
creating build/temp.cygwin-1.7.32-x86_64-2.7
compile options: '-I/usr/lib/python2.7/site-packages/numpy/core/include -I/usr/include/python2.7 -c'
gcc: single_type_logit.c
In file included from /usr/lib/python2.7/site-packages/numpy/core/include/numpy/ndarraytypes.h:1728:0,
from single_type_logit.c:3:
/usr/lib/python2.7/site-packages/numpy/core/include/numpy/npy_deprecated_api.h:11:2: warning: #warning "Using deprecated NumPy API, disable it by #defining NPY_NO_DEPRECATED_API NPY_1_7_API_VERSION" [-Wcpp] #warning "Using deprecated NumPy API, disable it by #defining NPY_NO_DEPRECATED_API NPY_1_7_API_VERSION"
creating build/lib.cygwin-1.7.32-x86_64-2.7
creating build/lib.cygwin-1.7.32-x86_64-2.7/npufunc_directory
gcc -shared -Wl,--enable-auto-image-base -L. build/temp.cygwin-1.7.32-x86_64-2.7/single_type_logit.o -L/usr/lib/python2.7/config -L/usr/lib -lpython2.7 -o build/lib.cygwin-1.7.32-x86_64-2.7/npufunc_directory/npufunc.dll
running scons
running install_lib
copying build/lib.cygwin-1.7.32-x86_64-2.7/npufunc_directory/npufunc.dll -> /usr/lib/python2.7/site-packages/npufunc_directory
running install_egg_info
Removing /usr/lib/python2.7/site-packages/npufunc_directory-0.0.0-py2.7.egg-info
Writing /usr/lib/python2.7/site-packages/npufunc_directory-0.0.0-py2.7.egg-info
running install_clib
customize UnixCCompiler
运行python setup.py build
会产生:
$ python setup.py build
running build
running config_cc
unifing config_cc, config, build_clib, build_ext, build commands --compiler options
running config_fc
unifing config_fc, config, build_clib, build_ext, build commands --fcompiler options
running build_src
build_src
building extension "npufunc_directory.npufunc" sources
build_src: building npy-pkg config files
running build_ext
customize UnixCCompiler
customize UnixCCompiler using build_ext
running scons
如果我尝试导入模块,我会得到:
Traceback (most recent call last):
File "<pyshell#0>", line 1, in <module>
import npufunc
ImportError: No module named npufunc
有谁知道如何使这项工作?
答案 0 :(得分:1)
根据documentation&#34;需要__init__.py
文件才能使Python将目录视为包含包&#34;。 Numpy文档中的setup.py不会创建此文件,因此Python不会导入任何内容,因为它会忽略此目录。
解决方案:只需在__init__.py
目录中添加一个空的/usr/local/lib/python2.7/dist-packages/npufunc_directory
文件,例如sudo touch __init__.py
,然后尝试:
>>> from npufunc_directory import npufunc
>>> npufunc.logit(.5)
0.0
或者,将import npufunc
添加到__init__.py
,然后您可以执行以下操作:
>>> import npufunc_directory
>>> npufunc_directory.npufunc.logit(0.5)
0.0