在将python setup.py build
与以下代码一起使用时:
import setuptools
from distutils.core import setup
from Cython.Build import cythonize
setup(ext_modules=cythonize("module1.pyx", build_dir="temp"))
.pyd库是在.\build\lib.win-amd64-2.7\module1.pyd
中产生的。
如何将输出的.pyd文件改为当前的文件夹.
?
注意:cythonize
参数build_dir="temp"
起作用:cython生成的module1.c
文件确实在temp\
中。我的问题是关于输出的.pyd文件。
答案 0 :(得分:2)
使用参数pip
选项。
user1@sv1:~$ python Python 3.6.0 |Continuum Analytics, Inc.| (default, Dec 23 2016,12:22:00) [GCC 4.4.7 20120313 (Red Hat 4.4.7-1)] on linux Type "help", "copyright", "credits" or "license" for more information. >>> from google.cloud import bigquery Traceback (most recent call last): File "<stdin>", line 1, in <module> File "/home/user1/miniconda3/lib/python3.6/site-packages/google/cloud/bigquery/__init__.py", line 34, in <module> from google.cloud.bigquery.client import Client File "/home/user1/miniconda3/lib/python3.6/site-packages/google/cloud/bigquery/client.py", line 32, in <module> import google.cloud._helpers
Read more about packaging here.
您可以使用以下内容:
--dist-dir=[default: dist]
答案 1 :(得分:2)
感谢
python setup.py build --help
我发现解决方案是使用参数build-lib
:
python setup.py build --build-lib=.
然后,将在.pyx Cython文件所在的文件夹中创建.pyd文件。
如果您不想将其作为命令行参数传递,也可以这样做:
setup(ext_modules=cythonize("module1.pyx", build_dir="build"), script_args=['build'],
options={'build':{'build_lib':'.'}})
具有inplace
的{{1}}选项的另一种选择(最终效果相同):
build_ext