2016-07-19 1 views
0

Je tente de créer un package Python à l'aide d'un shell MSYS2 MINGW64 sur une machine virtuelle Windows 7 VirtualBox. Le paquet construit, installe et importe avec succès sur Linux.bdist_wheel ne fonctionne pas sous MSYS2

je peux construire une roue binaire sous MSYS2 ...

$ python setup.py bdist_wheel 
running bdist_wheel 
running build 
running build_py 
running build_ext 
running build_scripts 
installing to build/bdist.mingw/wheel 
running install 
running install_lib 
running install_egg_info 
running egg_info 
writing stencila.egg-info/PKG-INFO 
writing top-level names to stencila.egg-info/top_level.txt 
writing dependency_links to stencila.egg-info/dependency_links.txt 
reading manifest file 'stencila.egg-info/SOURCES.txt' 
writing manifest file 'stencila.egg-info/SOURCES.txt' 
Copying stencila.egg-info to /build/bdist.mingw/wheel/./stencila-0.24.0+a67987b-py2.7.egg-info 
running install_scripts 
creating build/bdist.mingw/wheel/stencila-0.24.0+a67987b.dist-info/WHEEL 

mais est efficace "vide" (manquant compilé l'extension C++ et Python sources) ...

$ unzip -l dist/stencila-0.24.0+a67987b-cp27-cp27m-mingw.whl 
Archive: dist/stencila-0.24.0+a67987b-cp27-cp27m-mingw.whl 
    Length  Date Time Name 
--------- ---------- ----- ---- 
     10 2016-07-19 02:47 stencila-0.24.0+a67987b.dist-info/DESCRIPTION.rst 
     398 2016-07-19 02:47 stencila-0.24.0+a67987b.dist-info/metadata.json 
     9 2016-07-19 02:47 stencila-0.24.0+a67987b.dist-info/top_level.txt 
     102 2016-07-19 02:47 stencila-0.24.0+a67987b.dist-info/WHEEL 
     235 2016-07-19 02:47 stencila-0.24.0+a67987b.dist-info/METADATA 
     550 2016-07-19 02:47 stencila-0.24.0+a67987b.dist-info/RECORD 
---------      ------- 
    1304      6 files 

et ainsi bien il va installer, il ne parvient pas à importer ...

$ pip install --upgrade dist/stencila-0.24.0+a67987b-cp27-cp27m-mingw.whl 
Processing c:/stencila/py/dist/stencila-0.24.0+a67987b-cp27-cp27m-mingw.whl 
Installing collected packages: stencila 
    Found existing installation: stencila 0.24.0+5a660f0 
    Uninstalling stencila-0.24.0+5a660f0: 
     Successfully uninstalled stencila-0.24.0+5a660f0 
Successfully installed stencila-0.24.0+a67987b 
You are using pip version 8.1.1, however version 8.1.2 is available. 
You should consider upgrading via the 'python -m pip install --upgrade pip' command. 

$ python -c "import stencila" 
Traceback (most recent call last): 
    File "<string>", line 1, in <module> 
ImportError: No module named stencila 

J'ai le même comportement sur Appveyor.

En revanche, un oeuf binaire qui utilise python setup.py bdist_egg a tout ce ...

$ unzip -l dist/stencila-0.24.0+a67987b-py2.7-mingw.egg 
Archive: dist/stencila-0.24.0+a67987b-py2.7-mingw.egg 
    Length  Date Time Name 
--------- ---------- ----- ---- 
     1 2016-07-19 14:47 EGG-INFO/dependency_links.txt 
     24 2016-07-19 14:47 EGG-INFO/native_libs.txt 
     242 2016-07-19 14:47 EGG-INFO/PKG-INFO 
     403 2016-07-19 14:47 EGG-INFO/SOURCES.txt 
     9 2016-07-19 14:47 EGG-INFO/top_level.txt 
     2 2016-07-19 14:47 EGG-INFO/zip-safe 
    3465 2016-07-19 14:44 EGG-INFO/scripts/stencila-py 
    1747 2016-07-04 13:29 stencila/component.py 
    1564 2016-07-19 14:47 stencila/component.pyc 
    7224 2016-07-04 13:29 stencila/context.py 
    8061 2016-07-19 14:47 stencila/context.pyc 
     293 2016-07-19 14:47 stencila/extension.py 
     538 2016-07-19 14:47 stencila/extension.pyc 
    4146176 2016-07-19 14:44 stencila/extension.pyd 
     880 2016-07-04 13:29 stencila/sheet.py 
    1472 2016-07-19 14:47 stencila/sheet.pyc 
    3251 2016-07-04 13:29 stencila/spread.py 
    4699 2016-07-19 14:47 stencila/spread.pyc 
    1092 2016-07-04 13:29 stencila/stencil.py 
    1690 2016-07-19 14:47 stencila/stencil.pyc 
     376 2016-07-04 13:29 stencila/__init__.py 
     528 2016-07-19 14:47 stencila/__init__.pyc 
---------      ------- 
    4183737      22 files 

et installe et les importations comme prévu ...

$ easy_install dist/stencila-0.24.0+a67987b-py2.7-mingw.egg 
Processing stencila-0.24.0+a67987b-py2.7-mingw.egg 
Copying stencila-0.24.0+a67987b-py2.7-mingw.egg to c:/msys64/mingw64/lib/python2.7/site-packages 
Adding stencila 0.24.0+a67987b to easy-install.pth file 
Installing stencila-py script to C:/msys64/mingw64/bin 

Installed c:/msys64/mingw64/lib/python2.7/site-packages/stencila-0.24.0+a67987b-py2.7-mingw.egg 
Processing dependencies for stencila==0.24.0+a67987b 
Finished processing dependencies for stencila==0.24.0+a67987b 

$ python -c "import stencila" 

Répondre

0

là MSYS2 est un conflit entre avec la traduction de chemin MSYS2 et bdist_wheel. Une solution consiste à spécifier un chemin absoludans un répertoire temporaire de construction en utilisant l'option --bdist-dir (ne devrait pas être « construire » depuis bdist_wheel supprime ce répertoire qui signifie un nouveau chaque fois reconstruisent):

python setup.py bdist_wheel --bdist-dir=$PWD/build-temp