0

Windows 7 VirtualBox VM の MSYS2 MINGW64 シェルを使用して Python パッケージをビルドしようとしています。パッケージは、Linux で正常にビルド、インストール、およびインポートされます。

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

しかし、事実上「空」です(コンパイルされたC++拡張機能とPythonソースがありません)...

$ 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

そのため、インストールはできますが、インポートに失敗します...

$ 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

Appveyor でも同じ動作をします。

対照的に、を使用して構築されたバイナリの卵にpython setup.py bdist_eggはすべてが含まれています...

$ 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

期待どおりにインストールしてインポートします...

$ 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"
4

1 に答える 1