赛通 没有这样的文件或目录:Windows 上'.pyd'错误



我正在尝试从Cython教程构建Hello World示例。我给两人都写了问候。Pyx和setup.py文件:

# hello.pyx
def say_hello_to(name):
    print("Hello %s!" % name)

# setup.py
try:
    from setuptools import setup
    from setuptools import Extension
except ImportError:
    from distutils.core import setup
    from distutils.extension import Extension
from Cython.Build import cythonize

setup(
  name='Hello world app',
  ext_modules=cythonize("hello.pyx"),
)

运行

python setup.py build_ext --inplace

我得到以下错误:

copying buildlib.win-amd64-2.7cython_testhello.pyd -> cython_test
error: [Errno 2] No such file or directory: 'cython_test\hello.pyd'

构建过程工作正常,我得到一个工作的hello.pyd文件,但由于某种原因setup.py不能将.pyd复制回工作目录。我怎样才能解决这个问题呢?

你好。pyx和setup.py文件也可以在BitBucket

我已经解决了这个问题。python setup.py命令应该在工程目录外执行。下面的代码可以正常工作。

cd ..
python setup.py build_ext --inplace

更新:解决问题的更好方法是将package_dir选项指定为setup功能:

setup(
    name='Hello world app',
    package_dir={'cython_test': ''},
    ext_modules=cythonize("hello.pyx"),
)

希望这对遇到此错误的其他人有用。经过一番挖掘,我的问题是由于同一目录下的__init__.py文件。这个github问题突出了潜在的问题。在删除__init__.py之后,我现在在目录中得到了正确的.pyd文件。

相关内容

  • 没有找到相关文章

最新更新