Tôi đang cố nhập một mô-đun dữ liệu cython.py.pyx vào một mô-đun người dùng cython.py. Mọi thứ đều tốt, nhưng khi tôi cố gắng gọi user.pyx trong mô-đun python, tôi nhận được lỗi 'ImportError: No module named data'.Cython: ImportError: Không có mô-đun có tên 'myModule': cách gọi một mô-đun cython chứa một cimport đến một nốt sần khác?
Mọi thứ đều nằm trong cùng một thư mục.
package/
__init__.py #empty
setup.py
data.pxd
data.pyx
user.pyx
setup.py My
from distutils.core import setup
from distutils.extension import Extension
from Cython.Distutils import build_ext
ext_modules = [
Extension("data", ["data.pyx"]),
Extension("user", ["user.pyx"],include_dirs = ['myPackageDir'])
]
setup(
name = 'app',
cmdclass = {'build_ext': build_ext},
ext_modules = ext_modules
)
Chạy ý chí test.py sau nâng lỗi.
import user #this line raised the 'ImportError: No module named data' below
user.doSomething()
Ngoại lệ tôi nhận được là
Traceback:
File "test.py", line 1, in <module>
import package.user
File "user.pyx", line 1, in init user (user.c:3384)
ImportError: No module named data
Làm thế nào tôi có thể làm cho việc nhập khẩu? Cảm ơn vì bất kì sự giúp đỡ.
Tại sao bạn chỉnh sửa mã của mình thành mã hoạt động khi mã thực sự chứng minh mã sai? –
@Niklas Tôi thấy quan điểm của bạn. Với chỉnh sửa của tôi, bài đăng trở nên khó hiểu. Rob đăng giải quyết lỗi 'ImportError: không có mô-đun tên người dùng'. Nhưng vấn đề thực tế của tôi là lỗi 'ImportError không có module _data_', mà tôi đã giải quyết bằng cách biên dịch lại tất cả dự án của tôi. Khi bài Rob giải quyết một vấn đề tiềm năng thực sự, tôi đánh dấu nó là câu trả lời, ngay cả khi đó không phải là vấn đề thực tế của tôi. Xin lỗi vì sự nhầm lẫn. Nếu có cách nào tốt hơn, hãy cho tôi biết. –