Không có mô-đun có tên 'Cython' với cài đặt pip của tar.gz


10

Tôi sử dụng Thơ để xây dựng các tệp tar.gz và whl cho gói ví dụ của mình ( https://github.com/iamishalkin/cyrtd ) và sau đó thử cài đặt gói trong môi trường pipenv. cài đặt tar.gz không thành công và đây là một phần của bản ghi:

$ poetry build
...
$ pip install dist/cyrtd-0.1.0.tar.gz
Processing c:\work2\cyrtd\dist\cyrtd-0.1.0.tar.gz
  Installing build dependencies ... done
  Getting requirements to build wheel ... done
    Preparing wheel metadata ... done
Requirement already satisfied: cython<0.30.0,>=0.29.13 in c:\users\ivan.mishalkin\.virtualenvs\cyrtd-tpdvsw8x\lib\site-packages (from cyrtd==0.1.0) (0.29.15)
Building wheels for collected packages: cyrtd
  Building wheel for cyrtd (PEP 517) ... error
  ERROR: Command errored out with exit status 1:
...
from Cython.Build import cythonize
  ModuleNotFoundError: No module named 'Cython'  
  ----------------------------------------
  ERROR: Failed building wheel for dxpyfeed
Failed to build dxpyfeed
ERROR: Could not build wheels for dxpyfeed which use PEP 517 and cannot be installed directly

Cython được cài đặt và có thể gọi được từ trình thông dịch ảo. Ngay cả trong nhật ký được viết, các yêu cầu đối với cython cũng được thỏa mãn. Điều gì là lạ - mọi thứ đã hoạt động tốt vài tháng trước. Tôi cũng đã thử conda venv, nâng cấp cython và thơ, không có gì giúp được. Cũng đã thử cách giải quyết liên quan yếu từ setup_Vquires với Cython? - vẫn không gặp may

CẬP NHẬT : Tôi tìm thấy một số cách giải quyết bẩn ở đây: https://lumbomen.com/post/resolve-cython-and-numpy-dependencies

Ý tưởng là để thêm

from setuptools import dist
dist.Distribution().fetch_build_eggs(['cython'])

trước khi nhập Cython.

Sau này tôi nhận được các bản ghi này:

$ pip install dist/cyrtd-0.1.0.tar.gz
Processing c:\work2\cyrtd\dist\cyrtd-0.1.0.tar.gz
  Installing build dependencies ... done
  Getting requirements to build wheel ... done
    Preparing wheel metadata ... done
Requirement already satisfied: cython<0.30.0,>=0.29.13 in c:\users\ivan.mishalkin\.virtualenvs\cyrtd-tpdvsw8x\lib\site-packages (from cyrtd==0.1.0) (0.29.15)
Building wheels for collected packages: cyrtd
  Building wheel for cyrtd (PEP 517) ... done
  Created wheel for cyrtd: filename=cyrtd-0.1.0-cp37-cp37m-win_amd64.whl size=33062 sha256=370a90657759d3183f3c11ebbdf1d23c3ca857d41dd45a86386ba33a6baf9a07
  Stored in directory: c:\users\ivan.mishalkin\appdata\local\pip\cache\wheels\45\d1\6b\52daecf1cc5234ca4d9e9e49b2f195e7adb83941424116432e
Successfully built cyrtd
Installing collected packages: cyrtd
  Attempting uninstall: cyrtd
    Found existing installation: cyrtd 0.1.0
    Uninstalling cyrtd-0.1.0:
      Successfully uninstalled cyrtd-0.1.0
Successfully installed cyrtd-0.1.0

Vẫn đang tìm kiếm một giải pháp tốt hơn

UPD2: nội dung tập tin chính: build.py:

from setuptools import Extension
from Cython.Build import cythonize

cyfuncs_ext = Extension(name='cyrtd.cymod.cyfuncs',
                        sources=['cyrtd/cymod/cyfuncs.pyx']
                        )

EXTENSIONS = [
    cyfuncs_ext
]

def build(setup_kwargs):
    setup_kwargs.update({
        'ext_modules': cythonize(EXTENSIONS, language_level=3),
        'zip_safe': False,
        'setup_requires':['setuptools>=18.0', 'cython']
    })

1
build.pybộ kịch bản như giá trị trong [tool.poetry].build, hoặc làm thế nào để bạn gắn nó?
Arne

1
@Arne có, tất nhiên nó được liên kết trong pyproject.tomltập tin. Repo từ câu hỏi chứa tất cả các mã
Ivan Mishalkin

ah, tôi không thấy rằng bạn đã liên kết repo của bạn. Đây có phải là một giải pháp thích hợp cho bạn, hay bạn vẫn đang tìm kiếm thứ gì đó tốt hơn? Nếu nó đủ tốt, hãy xem xét đăng nó như một câu trả lời độc lập.
Arne

@Arne một thời gian trước mọi thứ hoạt động tốt mà không có cách giải quyết như vậy, vì vậy tôi tự tin rằng có giải pháp tốt hơn. Vấn đề là tôi không biết, điều gì đã thay đổi và tìm kiếm lỗi ở đâu
Ivan Mishalkin

Câu trả lời:


0

Thêm cython trong phần xây dựng hệ thống pyproject.tomlgiúp tôi

pyproject.toml:

...
[build-system]
requires = ["poetry>=0.12", "cython"]
...
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.