2015-09-21 19 views
6

Tôi gặp sự cố khi biên dịch exe trong khi sử dụng cx_freeze và scipy. Đặc biệt, kịch bản của tôi sử dụngScipy và CX_freeze - Lỗi khi nhập scipy: bạn không thể nhập scipy khi đang ở trong thư mục nguồn scipy

from scipy.interpolate import griddata 

Quá trình xây dựng dường như hoàn thành, tuy nhiên khi tôi cố gắng chạy exe biên soạn, tôi nhận được thông báo sau.

Traceback (most recent call last): 
    File "C:\Python27\lib\site-packages\cx_Freeze\initscripts\Console.py", line 27, in <module> 
    exec(code, m.__dict__) 
    File "gis_helper.py", line 13, in <module> 
    File "C:\Python27\lib\site-packages\scipy\__init__.py", line 103, in <module> 
    raise ImportError(msg) 
ImportError: Error importing scipy: you cannot import scipy while 
     being in scipy source directory; please exit the scipy source 
     tree first, and relaunch your python intepreter. 

Sau khi xem xét scipy tập tin \ _init__.py, có điều sau đây:

if __SCIPY_SETUP__: 
    import sys as _sys 
    _sys.stderr.write('Running from scipy source directory.\n') 
    del _sys 
else: 
    try: 
     from scipy.__config__ import show as show_config 
    except ImportError: 
     msg = """Error importing scipy: you cannot import scipy while 
     being in scipy source directory; please exit the scipy source 
     tree first, and relaunch your python intepreter.""" 
     raise ImportError(msg) 

Tôi không hoàn toàn chắc chắn rằng vấn đề ở đây là gì tuy nhiên mặc dù có vẻ như rằng erros đã được ném vì có sự cố với tệp cấu hình scipy. Có thể không được bao gồm trong quá trình xây dựng. Tôi là một người mới và hy vọng một người nào đó có kinh nghiệm hơn với việc tạo dựng bằng cxfreeze có thể làm sáng tỏ điều này.

Ngẫu nhiên, scipy được sử dụng đã được cài đặt từ tệp nhị phân here.

Trả lời

10

tôi đã gặp vấn đề tương tự. Tôi thêm mã này vào setup.py tạo ra bởi cx_freeze:

import scipy 
includefiles_list=[] 
scipy_path = dirname(scipy.__file__) 
includefiles_list.append(scipy_path) 

Sau đó, sử dụng includefiles_list như là một phần của tham số build_exe:

build_options = dict(packages=[], include_files=includefiles_list) 

setup(name="foo", options=dict(build_exe=build_options)) 
+0

Cảm ơn đã hoạt động, rất tiếc, hiện tại nó đã được chuyển sang các lỗi khác. Tập trung vào pyinstaller trong thời gian này, nhưng cảm ơn sự giúp đỡ của bạn. – Praxis

+0

Tôi có cùng một vấn đề. Tất cả khó khăn khi tôi kiểm tra mã của bạn tôi nhận được thông báo sau 'ImportError: Không có mô-đun có tên 'C: \\ *** \\ *** \\ Python27 \\ lib \\ site-packages \\ scipy' – Poonuts

+0

Tôi có cùng một rắc rối. Ai đó có thể giải quyết nó? – CarMoreno

0

tôi thêm cùng một vấn đề và giải quyết nó bằng cách sử fepzzz phương pháp và bao gồm một số các gói bị thiếu:

additional_mods = ['numpy.matlib', 'multiprocessing.process'] 
includefiles = [(r'C:\Anaconda3\Lib\site-packages\scipy')] 

setup(xxx, options={'build_exe': {'includes': additional_mods, 'include_files': includefiles}}) 

Và sử dụng phiên bản 5.0.2 của gói cx-Freeze, giải quyết lỗi khi nhập đa xử lý.process

Các vấn đề liên quan