2017-01-30 2 views
0

저는 cython embed를 사용하여 Hello World를 구축하고 있습니다. 사용하여 고정 표시기 파이썬-3.5.3 이미지 (와 데비안 제시, libpython3.5-dev에 additionaly 설치)Cython embed binary (docker) : 사이트 모듈을 가져 오지 못했습니다.

hello.py :

print('hello world') 

건물 :

cython --embed -o hello.c hello.py 
gcc -I /usr/include/python3.5 -o hello hello.c -lpython3.5m 

후 실행하려고하면 ImportError :

Failed to import the site module 
Traceback (most recent call last): 
    File "/usr/lib/python3.5/site.py", line 580, in <module> 
    main() 
    File "/usr/lib/python3.5/site.py", line 566, in main 
    known_paths = addusersitepackages(known_paths) 
    File "/usr/lib/python3.5/site.py", line 287, in addusersitepackages 
    user_site = getusersitepackages() 
    File "/usr/lib/python3.5/site.py", line 263, in getusersitepackages 
    user_base = getuserbase() # this will also set USER_BASE 
    File "/usr/lib/python3.5/site.py", line 253, in getuserbase 
    USER_BASE = get_config_var('userbase') 
    File "/usr/lib/python3.5/sysconfig.py", line 595, in get_config_var 
    return get_config_vars().get(name) 
    File "/usr/lib/python3.5/sysconfig.py", line 538, in get_config_vars 
    _init_posix(_CONFIG_VARS) 
    File "/usr/lib/python3.5/sysconfig.py", line 410, in _init_posix 
    from _sysconfigdata import build_time_vars 
    File "/usr/lib/python3.5/_sysconfigdata.py", line 6, in <module> 
    from _sysconfigdata_m import * 
ImportError: No module named '_sysconfigdata_m' 

PATH 또는 PYTHONPATH에 문제가 있어도 직접 설정 한 환경에서 바이너리 파일을 실행하면 같은 오류로 실패합니다.

답변

0

나는

find/-name '_sysconfigdata_m.py' 

이 /usr/lib/python3.5/plat-x86_64-linux-gnu/_sysconfigdata_m.py

그리고

cp /usr/lib/python3.5/plat-x86_64-linux-gnu/_sysconfigdata_m.py /usr/lib/python3.5 Everything worked fine. 

는하지만 여전히 궁금 사용 - _sysconfigdata_m이 기본적으로 /usr/lib/python3.5에없는 이유는 무엇입니까?