pip install pyamf failed with exit status 1120

本文介绍了在Python环境中安装和使用PyAMF的过程,解决了一系列安装错误,并最终成功解析了Flash中的AMF编码数据。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

用Python解析flash中用AMF编码的数据需用到第三方库pyamf,安装pyamf出现如下错误:

C:\Users\DELL>pip install pyamf

Collecting pyamf
  Downloading PyAMF-0.8.0.tar.gz (1.7MB)
    100% |████████████████████████████████|1.7MB 679kB/s
Requirement already satisfied: defusedxml in d:\appdata\anaconda3\lib\site-packages\defusedxml-0.5.0-py3.6.egg (from pyamf)
Building wheels for collected packages: pyamf
  Running setup.py bdist_wheel for pyamf ... error
  Complete output from command D:\AppData\Anaconda3\python.exe -u -c "import setuptools, tokenize;__file__='C:\\Users\\DELL\\AppData\\Local\\Temp\\pip-build-soh0ppan\\pyamf\\setup.py';f=getattr(tokenize, 'open', open)(__file__);code=f.read().replace('\r\n', '\n');f.close();exec(compile(code, __file__, 'exec'))" bdist_wheel -d C:\Users\DELL\AppData\Local\Temp\tmp6uhwq18ypip-wheel- --python-tag cp36:
  running bdist_wheel
  running build
  running build_py
  creating build
  creating build\lib.win-amd64-3.6
  creating build\lib.win-amd64-3.6\cpyamf
  copying cpyamf\__init__.py -> build\lib.win-amd64-3.6\cpyamf
  creating build\lib.win-amd64-3.6\pyamf
  copying pyamf\alias.py -> build\lib.win-amd64-3.6\pyamf
  copying pyamf\amf0.py -> build\lib.win-amd64-3.6\pyamf
  copying pyamf\amf3.py -> build\lib.win-amd64-3.6\pyamf
  copying pyamf\codec.py -> build\lib.win-amd64-3.6\pyamf
  copying pyamf\python.py -> build\lib.win-amd64-3.6\pyamf
  copying pyamf\sol.py -> build\lib.win-amd64-3.6\pyamf
  copying pyamf\versions.py -> build\lib.win-amd64-3.6\pyamf
  copying pyamf\xml.py -> build\lib.win-amd64-3.6\pyamf
  copying pyamf\_version.py -> build\lib.win-amd64-3.6\pyamf
  copying pyamf\__init__.py -> build\lib.win-amd64-3.6\pyamf
  creating build\lib.win-amd64-3.6\pyamf\adapters
  copying pyamf\adapters\gae_base.py -> build\lib.win-amd64-3.6\pyamf\adapters
  copying pyamf\adapters\models.py -> build\lib.win-amd64-3.6\pyamf\adapters
  copying pyamf\adapters\util.py -> build\lib.win-amd64-3.6\pyamf\adapters
  copying pyamf\adapters\_array.py -> build\lib.win-amd64-3.6\pyamf\adapters
  copying pyamf\adapters\_collections.py -> build\lib.win-amd64-3.6\pyamf\adapters
  copying pyamf\adapters\_decimal.py -> build\lib.win-amd64-3.6\pyamf\adapters
  copying pyamf\adapters\_django_contrib_auth_models.py -> build\lib.win-amd64-3.6\pyamf\adapters
  copying pyamf\adapters\_django_db_models_base.py -> build\lib.win-amd64-3.6\pyamf\adapters
  copying pyamf\adapters\_django_db_models_fields.py -> build\lib.win-amd64-3.6\pyamf\adapters
  copying pyamf\adapters\_django_db_models_query.py -> build\lib.win-amd64-3.6\pyamf\adapters
  copying pyamf\adapters\_django_utils_translation.py -> build\lib.win-amd64-3.6\pyamf\adapters
  copying pyamf\adapters\_elixir.py -> build\lib.win-amd64-3.6\pyamf\adapters
  copying pyamf\adapters\_google_appengine_api_datastore_types.py -> build\lib.win-amd64-3.6\pyamf\adapters
  copying pyamf\adapters\_google_appengine_ext_blobstore.py -> build\lib.win-amd64-3.6\pyamf\adapters
  copying pyamf\adapters\_google_appengine_ext_db.py -> build\lib.win-amd64-3.6\pyamf\adapters
  copying pyamf\adapters\_google_appengine_ext_ndb.py -> build\lib.win-amd64-3.6\pyamf\adapters
  copying pyamf\adapters\_sets.py -> build\lib.win-amd64-3.6\pyamf\adapters
  copying pyamf\adapters\_sqlalchemy_orm.py -> build\lib.win-amd64-3.6\pyamf\adapters
  copying pyamf\adapters\_sqlalchemy_orm_collections.py -> build\lib.win-amd64-3.6\pyamf\adapters
  copying pyamf\adapters\_weakref.py -> build\lib.win-amd64-3.6\pyamf\adapters
  copying pyamf\adapters\__init__.py -> build\lib.win-amd64-3.6\pyamf\adapters
  creating build\lib.win-amd64-3.6\pyamf\flex
  copying pyamf\flex\data.py -> build\lib.win-amd64-3.6\pyamf\flex
  copying pyamf\flex\messaging.py -> build\lib.win-amd64-3.6\pyamf\flex
  copying pyamf\flex\__init__.py -> build\lib.win-amd64-3.6\pyamf\flex
  creating build\lib.win-amd64-3.6\pyamf\remoting
  copying pyamf\remoting\amf0.py -> build\lib.win-amd64-3.6\pyamf\remoting
  copying pyamf\remoting\amf3.py -> build\lib.win-amd64-3.6\pyamf\remoting
  copying pyamf\remoting\__init__.py -> build\lib.win-amd64-3.6\pyamf\remoting
  creating build\lib.win-amd64-3.6\pyamf\tests
  copying pyamf\tests\test_adapters.py -> build\lib.win-amd64-3.6\pyamf\tests
  copying pyamf\tests\test_adapters_util.py -> build\lib.win-amd64-3.6\pyamf\tests
  copying pyamf\tests\test_alias.py -> build\lib.win-amd64-3.6\pyamf\tests
  copying pyamf\tests\test_amf0.py -> build\lib.win-amd64-3.6\pyamf\tests
  copying pyamf\tests\test_amf3.py -> build\lib.win-amd64-3.6\pyamf\tests
  copying pyamf\tests\test_basic.py -> build\lib.win-amd64-3.6\pyamf\tests
  copying pyamf\tests\test_codec.py -> build\lib.win-amd64-3.6\pyamf\tests
  copying pyamf\tests\test_flex.py -> build\lib.win-amd64-3.6\pyamf\tests
  copying pyamf\tests\test_flex_messaging.py -> build\lib.win-amd64-3.6\pyamf\tests
  copying pyamf\tests\test_gateway.py -> build\lib.win-amd64-3.6\pyamf\tests
  copying pyamf\tests\test_imports.py -> build\lib.win-amd64-3.6\pyamf\tests
  copying pyamf\tests\test_remoting.py -> build\lib.win-amd64-3.6\pyamf\tests
  copying pyamf\tests\test_sol.py -> build\lib.win-amd64-3.6\pyamf\tests
  copying pyamf\tests\test_util.py -> build\lib.win-amd64-3.6\pyamf\tests
  copying pyamf\tests\test_versions.py -> build\lib.win-amd64-3.6\pyamf\tests
  copying pyamf\tests\test_xml.py -> build\lib.win-amd64-3.6\pyamf\tests
  copying pyamf\tests\util.py -> build\lib.win-amd64-3.6\pyamf\tests
  copying pyamf\tests\__init__.py -> build\lib.win-amd64-3.6\pyamf\tests
  creating build\lib.win-amd64-3.6\pyamf\util
  copying pyamf\util\imports.py -> build\lib.win-amd64-3.6\pyamf\util
  copying pyamf\util\pure.py -> build\lib.win-amd64-3.6\pyamf\util
  copying pyamf\util\__init__.py -> build\lib.win-amd64-3.6\pyamf\util
  creating build\lib.win-amd64-3.6\pyamf\adapters\tests
  copying pyamf\adapters\tests\test_array.py -> build\lib.win-amd64-3.6\pyamf\adapters\tests
  copying pyamf\adapters\tests\test_collections.py -> build\lib.win-amd64-3.6\pyamf\adapters\tests
  copying pyamf\adapters\tests\test_django.py -> build\lib.win-amd64-3.6\pyamf\adapters\tests
  copying pyamf\adapters\tests\test_elixir.py -> build\lib.win-amd64-3.6\pyamf\adapters\tests
  copying pyamf\adapters\tests\test_sqlalchemy.py -> build\lib.win-amd64-3.6\pyamf\adapters\tests
  copying pyamf\adapters\tests\test_weakref.py -> build\lib.win-amd64-3.6\pyamf\adapters\tests
  copying pyamf\adapters\tests\__init__.py -> build\lib.win-amd64-3.6\pyamf\adapters\tests
  creating build\lib.win-amd64-3.6\pyamf\adapters\tests\django_app
  copying pyamf\adapters\tests\django_app\settings.py -> build\lib.win-amd64-3.6\pyamf\adapters\tests\django_app
  copying pyamf\adapters\tests\django_app\__init__.py -> build\lib.win-amd64-3.6\pyamf\adapters\tests\django_app
  creating build\lib.win-amd64-3.6\pyamf\adapters\tests\google
  copying pyamf\adapters\tests\google\test_blobstore.py -> build\lib.win-amd64-3.6\pyamf\adapters\tests\google
  copying pyamf\adapters\tests\google\test_datastore_types.py -> build\lib.win-amd64-3.6\pyamf\adapters\tests\google
  copying pyamf\adapters\tests\google\test_ndb.py -> build\lib.win-amd64-3.6\pyamf\adapters\tests\google
  copying pyamf\adapters\tests\google\test_xdb.py -> build\lib.win-amd64-3.6\pyamf\adapters\tests\google
  copying pyamf\adapters\tests\google\_ndb_models.py -> build\lib.win-amd64-3.6\pyamf\adapters\tests\google
  copying pyamf\adapters\tests\google\_xdb_models.py -> build\lib.win-amd64-3.6\pyamf\adapters\tests\google
  copying pyamf\adapters\tests\google\__init__.py -> build\lib.win-amd64-3.6\pyamf\adapters\tests\google
  creating build\lib.win-amd64-3.6\pyamf\adapters\tests\django_app\adapters
  copying pyamf\adapters\tests\django_app\adapters\models.py -> build\lib.win-amd64-3.6\pyamf\adapters\tests\django_app\adapters
  copying pyamf\adapters\tests\django_app\adapters\__init__.py -> build\lib.win-amd64-3.6\pyamf\adapters\tests\django_app\adapters
  creating build\lib.win-amd64-3.6\pyamf\remoting\client
  copying pyamf\remoting\client\__init__.py -> build\lib.win-amd64-3.6\pyamf\remoting\client
  creating build\lib.win-amd64-3.6\pyamf\remoting\gateway
  copying pyamf\remoting\gateway\django.py -> build\lib.win-amd64-3.6\pyamf\remoting\gateway
  copying pyamf\remoting\gateway\google.py -> build\lib.win-amd64-3.6\pyamf\remoting\gateway
  copying pyamf\remoting\gateway\twisted.py -> build\lib.win-amd64-3.6\pyamf\remoting\gateway
  copying pyamf\remoting\gateway\wsgi.py -> build\lib.win-amd64-3.6\pyamf\remoting\gateway
  copying pyamf\remoting\gateway\__init__.py -> build\lib.win-amd64-3.6\pyamf\remoting\gateway
  creating build\lib.win-amd64-3.6\pyamf\tests\gateway
  copying pyamf\tests\gateway\test_django.py -> build\lib.win-amd64-3.6\pyamf\tests\gateway
  copying pyamf\tests\gateway\test_google.py -> build\lib.win-amd64-3.6\pyamf\tests\gateway
  copying pyamf\tests\gateway\test_twisted.py -> build\lib.win-amd64-3.6\pyamf\tests\gateway
  copying pyamf\tests\gateway\test_wsgi.py -> build\lib.win-amd64-3.6\pyamf\tests\gateway
  copying pyamf\tests\gateway\__init__.py -> build\lib.win-amd64-3.6\pyamf\tests\gateway
  creating build\lib.win-amd64-3.6\pyamf\tests\modules
  copying pyamf\tests\modules\test_decimal.py -> build\lib.win-amd64-3.6\pyamf\tests\modules
  copying pyamf\tests\modules\test_sets.py -> build\lib.win-amd64-3.6\pyamf\tests\modules
  copying pyamf\tests\modules\__init__.py -> build\lib.win-amd64-3.6\pyamf\tests\modules
  creating build\lib.win-amd64-3.6\pyamf\tests\remoting
  copying pyamf\tests\remoting\test_amf0.py -> build\lib.win-amd64-3.6\pyamf\tests\remoting
  copying pyamf\tests\remoting\test_client.py -> build\lib.win-amd64-3.6\pyamf\tests\remoting
  copying pyamf\tests\remoting\test_remoteobject.py -> build\lib.win-amd64-3.6\pyamf\tests\remoting
  copying pyamf\tests\remoting\__init__.py -> build\lib.win-amd64-3.6\pyamf\tests\remoting
  copying cpyamf\amf0.pxd -> build\lib.win-amd64-3.6\cpyamf
  copying cpyamf\amf3.pxd -> build\lib.win-amd64-3.6\cpyamf
  copying cpyamf\codec.pxd -> build\lib.win-amd64-3.6\cpyamf
  copying cpyamf\util.pxd -> build\lib.win-amd64-3.6\cpyamf
  running build_ext
  skipping 'cpyamf\amf0.c' Cython extension (up-to-date)
  building 'cpyamf.amf0' extension
  creating build\temp.win-amd64-3.6
  creating build\temp.win-amd64-3.6\Release
  creating build\temp.win-amd64-3.6\Release\cpyamf
  C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\BIN\x86_amd64\cl.exe /c /nologo /Ox /W3 /GL /DNDEBUG /MD -ID:\AppData\Anaconda3\include -ID:\AppData\Anaconda3\include "-IC:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\INCLUDE" "-IC:\Program Files (x86)\Windows Kits\10\include\10.0.10240.0\ucrt" "-IC:\Program Files (x86)\Windows Kits\8.1\include\shared" "-IC:\Program Files (x86)\Windows Kits\8.1\include\um" "-IC:\Program Files (x86)\Windows Kits\8.1\include\winrt" "-IC:\Program Files (x86)\IBM\WebSphere MQ\tools\c\include" "-IC:\Program Files (x86)\IBM\WebSphere MQ\tools\cplus\include" /Tccpyamf\amf0.c /Fobuild\temp.win-amd64-3.6\Release\cpyamf\amf0.obj
  amf0.c
  cpyamf\amf0.c(3854): warning C4013: 'PyString_FromStringAndSize' undefined; assuming extern returning int
  cpyamf\amf0.c(3854): warning C4047: '=': 'PyObject *' differs in levels of indirection from 'int'
  cpyamf\amf0.c(5051): warning C4244: 'function': conversion from 'Py_ssize_t' to 'unsigned short', possible loss of data
  cpyamf\amf0.c(5398): warning C4244: 'function': conversion from 'Py_ssize_t' to 'unsigned long', possible loss of data
  cpyamf\amf0.c(5658): warning C4244: 'function': conversion from 'Py_ssize_t' to 'unsigned long', possible loss of data
  cpyamf\amf0.c(5910): warning C4013: 'PyString_GET_SIZE' undefined; assuming extern returning int
  cpyamf\amf0.c(5962): warning C4244: 'function': conversion from 'Py_ssize_t' to 'unsigned long', possible loss of data
  cpyamf\amf0.c(5974): warning C4244: 'function': conversion from 'Py_ssize_t' to 'unsigned short', possible loss of data
  cpyamf\amf0.c(5985): warning C4013: 'PyString_AS_STRING' undefined; assuming extern returning int
  cpyamf\amf0.c(5985): warning C4047: 'function': 'char *' differs in levels of indirection from 'int'
  cpyamf\amf0.c(5985): warning C4024: 'function through pointer': different types for formal and actual parameter 2
  cpyamf\amf0.c(6185): warning C4244: 'function': conversion from 'Py_ssize_t' to 'unsigned long', possible loss of data
  cpyamf\amf0.c(6197): warning C4244: 'function': conversion from 'Py_ssize_t' to 'unsigned short', possible loss of data
  cpyamf\amf0.c(6208): warning C4047: 'function': 'char *' differs in levels of indirection from 'int'
  cpyamf\amf0.c(6208): warning C4024: 'function through pointer': different types for formal and actual parameter 2
  cpyamf\amf0.c(6420): warning C4244: 'function': conversion from 'Py_ssize_t' to 'unsigned long', possible loss of data
  cpyamf\amf0.c(6429): warning C4047: 'function': 'char *' differs in levels of indirection from 'int'
  cpyamf\amf0.c(6429): warning C4024: 'function through pointer': different types for formal and actual parameter 2
  C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\BIN\x86_amd64\link.exe /nologo /INCREMENTAL:NO /LTCG /DLL /MANIFEST:EMBED,ID=2 /MANIFESTUAC:NO /LIBPATH:D:\AppData\Anaconda3\libs /LIBPATH:D:\AppData\Anaconda3\PCbuild\amd64 "/LIBPATH:C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\LIB\amd64" "/LIBPATH:C:\Program Files (x86)\Windows Kits\10\lib\10.0.10240.0\ucrt\x64" "/LIBPATH:C:\Program Files (x86)\Windows Kits\8.1\lib\winv6.3\um\x64" "/LIBPATH:C:\Program Files (x86)\IBM\WebSphere MQ\tools\lib64" "/LIBPATH:C:\Program Files (x86)\IBM\WebSphere MQ\tools\lib" /EXPORT:PyInit_amf0 build\temp.win-amd64-3.6\Release\cpyamf\amf0.obj /OUT:build\lib.win-amd64-3.6\cpyamf\amf0.cp36-win_amd64.pyd /IMPLIB:build\temp.win-amd64-3.6\Release\cpyamf\amf0.cp36-win_amd64.lib
  amf0.obj : warning LNK4197: export 'PyInit_amf0' specified multiple times; using first specification
     Creating library build\temp.win-amd64-3.6\Release\cpyamf\amf0.cp36-win_amd64.lib and object build\temp.win-amd64-3.6\Release\cpyamf\amf0.cp36-win_amd64.exp
  amf0.obj : error LNK2001: unresolved external symbol PyString_GET_SIZE
  amf0.obj : error LNK2001: unresolved external symbol PyString_AS_STRING
  amf0.obj : error LNK2001: unresolved external symbol PyString_FromStringAndSize
  build\lib.win-amd64-3.6\cpyamf\amf0.cp36-win_amd64.pyd : fatal error LNK1120: 3 unresolved externals
  error: command 'C:\\Program Files (x86)\\Microsoft Visual Studio 14.0\\VC\\BIN\\x86_amd64\\link.exe' failed with exit status 1120

  ----------------------------------------
  Failed building wheel for pyamf
  Running setup.py clean for pyamf
Failed to build pyamf
Installing collected packages: pyamf
  Running setup.py install for pyamf ... error
    Complete output from command D:\AppData\Anaconda3\python.exe -u -c "import setuptools, tokenize;__file__='C:\\Users\\DELL\\AppData\\Local\\Temp\\pip-build-soh0ppan\\pyamf\\setup.py';f=getattr(tokenize, 'open', open)(__file__);code=f.read().replace('\r\n', '\n');f.close();exec(compile(code, __file__, 'exec'))" install --record C:\Users\DELL\AppData\Local\Temp\pip-e09_kv6r-record\install-record.txt --single-version-externally-managed --compile:
    running install
    running build
    running build_py
    creating build
    creating build\lib.win-amd64-3.6
    creating build\lib.win-amd64-3.6\cpyamf
    copying cpyamf\__init__.py -> build\lib.win-amd64-3.6\cpyamf
    creating build\lib.win-amd64-3.6\pyamf
    copying pyamf\alias.py -> build\lib.win-amd64-3.6\pyamf
    copying pyamf\amf0.py -> build\lib.win-amd64-3.6\pyamf
    copying pyamf\amf3.py -> build\lib.win-amd64-3.6\pyamf
    copying pyamf\codec.py -> build\lib.win-amd64-3.6\pyamf
    copying pyamf\python.py -> build\lib.win-amd64-3.6\pyamf
    copying pyamf\sol.py -> build\lib.win-amd64-3.6\pyamf
    copying pyamf\versions.py -> build\lib.win-amd64-3.6\pyamf
    copying pyamf\xml.py -> build\lib.win-amd64-3.6\pyamf
    copying pyamf\_version.py -> build\lib.win-amd64-3.6\pyamf
    copying pyamf\__init__.py -> build\lib.win-amd64-3.6\pyamf
    creating build\lib.win-amd64-3.6\pyamf\adapters
    copying pyamf\adapters\gae_base.py -> build\lib.win-amd64-3.6\pyamf\adapters
    copying pyamf\adapters\models.py -> build\lib.win-amd64-3.6\pyamf\adapters
    copying pyamf\adapters\util.py -> build\lib.win-amd64-3.6\pyamf\adapters
    copying pyamf\adapters\_array.py -> build\lib.win-amd64-3.6\pyamf\adapters
    copying pyamf\adapters\_collections.py -> build\lib.win-amd64-3.6\pyamf\adapters
    copying pyamf\adapters\_decimal.py -> build\lib.win-amd64-3.6\pyamf\adapters
    copying pyamf\adapters\_django_contrib_auth_models.py -> build\lib.win-amd64-3.6\pyamf\adapters
    copying pyamf\adapters\_django_db_models_base.py -> build\lib.win-amd64-3.6\pyamf\adapters
    copying pyamf\adapters\_django_db_models_fields.py -> build\lib.win-amd64-3.6\pyamf\adapters
    copying pyamf\adapters\_django_db_models_query.py -> build\lib.win-amd64-3.6\pyamf\adapters
    copying pyamf\adapters\_django_utils_translation.py -> build\lib.win-amd64-3.6\pyamf\adapters
    copying pyamf\adapters\_elixir.py -> build\lib.win-amd64-3.6\pyamf\adapters
    copying pyamf\adapters\_google_appengine_api_datastore_types.py -> build\lib.win-amd64-3.6\pyamf\adapters
    copying pyamf\adapters\_google_appengine_ext_blobstore.py -> build\lib.win-amd64-3.6\pyamf\adapters
    copying pyamf\adapters\_google_appengine_ext_db.py -> build\lib.win-amd64-3.6\pyamf\adapters
    copying pyamf\adapters\_google_appengine_ext_ndb.py -> build\lib.win-amd64-3.6\pyamf\adapters
    copying pyamf\adapters\_sets.py -> build\lib.win-amd64-3.6\pyamf\adapters
    copying pyamf\adapters\_sqlalchemy_orm.py -> build\lib.win-amd64-3.6\pyamf\adapters
    copying pyamf\adapters\_sqlalchemy_orm_collections.py -> build\lib.win-amd64-3.6\pyamf\adapters
    copying pyamf\adapters\_weakref.py -> build\lib.win-amd64-3.6\pyamf\adapters
    copying pyamf\adapters\__init__.py -> build\lib.win-amd64-3.6\pyamf\adapters
    creating build\lib.win-amd64-3.6\pyamf\flex
    copying pyamf\flex\data.py -> build\lib.win-amd64-3.6\pyamf\flex
    copying pyamf\flex\messaging.py -> build\lib.win-amd64-3.6\pyamf\flex
    copying pyamf\flex\__init__.py -> build\lib.win-amd64-3.6\pyamf\flex
    creating build\lib.win-amd64-3.6\pyamf\remoting
    copying pyamf\remoting\amf0.py -> build\lib.win-amd64-3.6\pyamf\remoting
    copying pyamf\remoting\amf3.py -> build\lib.win-amd64-3.6\pyamf\remoting
    copying pyamf\remoting\__init__.py -> build\lib.win-amd64-3.6\pyamf\remoting
    creating build\lib.win-amd64-3.6\pyamf\tests
    copying pyamf\tests\test_adapters.py -> build\lib.win-amd64-3.6\pyamf\tests
    copying pyamf\tests\test_adapters_util.py -> build\lib.win-amd64-3.6\pyamf\tests
    copying pyamf\tests\test_alias.py -> build\lib.win-amd64-3.6\pyamf\tests
    copying pyamf\tests\test_amf0.py -> build\lib.win-amd64-3.6\pyamf\tests
    copying pyamf\tests\test_amf3.py -> build\lib.win-amd64-3.6\pyamf\tests
    copying pyamf\tests\test_basic.py -> build\lib.win-amd64-3.6\pyamf\tests
    copying pyamf\tests\test_codec.py -> build\lib.win-amd64-3.6\pyamf\tests
    copying pyamf\tests\test_flex.py -> build\lib.win-amd64-3.6\pyamf\tests
    copying pyamf\tests\test_flex_messaging.py -> build\lib.win-amd64-3.6\pyamf\tests
    copying pyamf\tests\test_gateway.py -> build\lib.win-amd64-3.6\pyamf\tests
    copying pyamf\tests\test_imports.py -> build\lib.win-amd64-3.6\pyamf\tests
    copying pyamf\tests\test_remoting.py -> build\lib.win-amd64-3.6\pyamf\tests
    copying pyamf\tests\test_sol.py -> build\lib.win-amd64-3.6\pyamf\tests
    copying pyamf\tests\test_util.py -> build\lib.win-amd64-3.6\pyamf\tests
    copying pyamf\tests\test_versions.py -> build\lib.win-amd64-3.6\pyamf\tests
    copying pyamf\tests\test_xml.py -> build\lib.win-amd64-3.6\pyamf\tests
    copying pyamf\tests\util.py -> build\lib.win-amd64-3.6\pyamf\tests
    copying pyamf\tests\__init__.py -> build\lib.win-amd64-3.6\pyamf\tests
    creating build\lib.win-amd64-3.6\pyamf\util
    copying pyamf\util\imports.py -> build\lib.win-amd64-3.6\pyamf\util
    copying pyamf\util\pure.py -> build\lib.win-amd64-3.6\pyamf\util
    copying pyamf\util\__init__.py -> build\lib.win-amd64-3.6\pyamf\util
    creating build\lib.win-amd64-3.6\pyamf\adapters\tests
    copying pyamf\adapters\tests\test_array.py -> build\lib.win-amd64-3.6\pyamf\adapters\tests
    copying pyamf\adapters\tests\test_collections.py -> build\lib.win-amd64-3.6\pyamf\adapters\tests
    copying pyamf\adapters\tests\test_django.py -> build\lib.win-amd64-3.6\pyamf\adapters\tests
    copying pyamf\adapters\tests\test_elixir.py -> build\lib.win-amd64-3.6\pyamf\adapters\tests
    copying pyamf\adapters\tests\test_sqlalchemy.py -> build\lib.win-amd64-3.6\pyamf\adapters\tests
    copying pyamf\adapters\tests\test_weakref.py -> build\lib.win-amd64-3.6\pyamf\adapters\tests
    copying pyamf\adapters\tests\__init__.py -> build\lib.win-amd64-3.6\pyamf\adapters\tests
    creating build\lib.win-amd64-3.6\pyamf\adapters\tests\django_app
    copying pyamf\adapters\tests\django_app\settings.py -> build\lib.win-amd64-3.6\pyamf\adapters\tests\django_app
    copying pyamf\adapters\tests\django_app\__init__.py -> build\lib.win-amd64-3.6\pyamf\adapters\tests\django_app
    creating build\lib.win-amd64-3.6\pyamf\adapters\tests\google
    copying pyamf\adapters\tests\google\test_blobstore.py -> build\lib.win-amd64-3.6\pyamf\adapters\tests\google
    copying pyamf\adapters\tests\google\test_datastore_types.py -> build\lib.win-amd64-3.6\pyamf\adapters\tests\google
    copying pyamf\adapters\tests\google\test_ndb.py -> build\lib.win-amd64-3.6\pyamf\adapters\tests\google
    copying pyamf\adapters\tests\google\test_xdb.py -> build\lib.win-amd64-3.6\pyamf\adapters\tests\google
    copying pyamf\adapters\tests\google\_ndb_models.py -> build\lib.win-amd64-3.6\pyamf\adapters\tests\google
    copying pyamf\adapters\tests\google\_xdb_models.py -> build\lib.win-amd64-3.6\pyamf\adapters\tests\google
    copying pyamf\adapters\tests\google\__init__.py -> build\lib.win-amd64-3.6\pyamf\adapters\tests\google
    creating build\lib.win-amd64-3.6\pyamf\adapters\tests\django_app\adapters
    copying pyamf\adapters\tests\django_app\adapters\models.py -> build\lib.win-amd64-3.6\pyamf\adapters\tests\django_app\adapters
    copying pyamf\adapters\tests\django_app\adapters\__init__.py -> build\lib.win-amd64-3.6\pyamf\adapters\tests\django_app\adapters
    creating build\lib.win-amd64-3.6\pyamf\remoting\client
    copying pyamf\remoting\client\__init__.py -> build\lib.win-amd64-3.6\pyamf\remoting\client
    creating build\lib.win-amd64-3.6\pyamf\remoting\gateway
    copying pyamf\remoting\gateway\django.py -> build\lib.win-amd64-3.6\pyamf\remoting\gateway
    copying pyamf\remoting\gateway\google.py -> build\lib.win-amd64-3.6\pyamf\remoting\gateway
    copying pyamf\remoting\gateway\twisted.py -> build\lib.win-amd64-3.6\pyamf\remoting\gateway
    copying pyamf\remoting\gateway\wsgi.py -> build\lib.win-amd64-3.6\pyamf\remoting\gateway
    copying pyamf\remoting\gateway\__init__.py -> build\lib.win-amd64-3.6\pyamf\remoting\gateway
    creating build\lib.win-amd64-3.6\pyamf\tests\gateway
    copying pyamf\tests\gateway\test_django.py -> build\lib.win-amd64-3.6\pyamf\tests\gateway
    copying pyamf\tests\gateway\test_google.py -> build\lib.win-amd64-3.6\pyamf\tests\gateway
    copying pyamf\tests\gateway\test_twisted.py -> build\lib.win-amd64-3.6\pyamf\tests\gateway
    copying pyamf\tests\gateway\test_wsgi.py -> build\lib.win-amd64-3.6\pyamf\tests\gateway
    copying pyamf\tests\gateway\__init__.py -> build\lib.win-amd64-3.6\pyamf\tests\gateway
    creating build\lib.win-amd64-3.6\pyamf\tests\modules
    copying pyamf\tests\modules\test_decimal.py -> build\lib.win-amd64-3.6\pyamf\tests\modules
    copying pyamf\tests\modules\test_sets.py -> build\lib.win-amd64-3.6\pyamf\tests\modules
    copying pyamf\tests\modules\__init__.py -> build\lib.win-amd64-3.6\pyamf\tests\modules
    creating build\lib.win-amd64-3.6\pyamf\tests\remoting
    copying pyamf\tests\remoting\test_amf0.py -> build\lib.win-amd64-3.6\pyamf\tests\remoting
    copying pyamf\tests\remoting\test_client.py -> build\lib.win-amd64-3.6\pyamf\tests\remoting
    copying pyamf\tests\remoting\test_remoteobject.py -> build\lib.win-amd64-3.6\pyamf\tests\remoting
    copying pyamf\tests\remoting\__init__.py -> build\lib.win-amd64-3.6\pyamf\tests\remoting
    copying cpyamf\amf0.pxd -> build\lib.win-amd64-3.6\cpyamf
    copying cpyamf\amf3.pxd -> build\lib.win-amd64-3.6\cpyamf
    copying cpyamf\codec.pxd -> build\lib.win-amd64-3.6\cpyamf
    copying cpyamf\util.pxd -> build\lib.win-amd64-3.6\cpyamf
    running build_ext
    skipping 'cpyamf\amf0.c' Cython extension (up-to-date)
    building 'cpyamf.amf0' extension
    creating build\temp.win-amd64-3.6
    creating build\temp.win-amd64-3.6\Release
    creating build\temp.win-amd64-3.6\Release\cpyamf
    C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\BIN\x86_amd64\cl.exe /c /nologo /Ox /W3 /GL /DNDEBUG /MD -ID:\AppData\Anaconda3\include -ID:\AppData\Anaconda3\include "-IC:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\INCLUDE" "-IC:\Program Files (x86)\Windows Kits\10\include\10.0.10240.0\ucrt" "-IC:\Program Files (x86)\Windows Kits\8.1\include\shared" "-IC:\Program Files (x86)\Windows Kits\8.1\include\um" "-IC:\Program Files (x86)\Windows Kits\8.1\include\winrt" "-IC:\Program Files (x86)\IBM\WebSphere MQ\tools\c\include" "-IC:\Program Files (x86)\IBM\WebSphere MQ\tools\cplus\include" /Tccpyamf\amf0.c /Fobuild\temp.win-amd64-3.6\Release\cpyamf\amf0.obj
    amf0.c
    cpyamf\amf0.c(3854): warning C4013: 'PyString_FromStringAndSize' undefined; assuming extern returning int
    cpyamf\amf0.c(3854): warning C4047: '=': 'PyObject *' differs in levels of indirection from 'int'
    cpyamf\amf0.c(5051): warning C4244: 'function': conversion from 'Py_ssize_t' to 'unsigned short', possible loss of data
    cpyamf\amf0.c(5398): warning C4244: 'function': conversion from 'Py_ssize_t' to 'unsigned long', possible loss of data
    cpyamf\amf0.c(5658): warning C4244: 'function': conversion from 'Py_ssize_t' to 'unsigned long', possible loss of data
    cpyamf\amf0.c(5910): warning C4013: 'PyString_GET_SIZE' undefined; assuming extern returning int
    cpyamf\amf0.c(5962): warning C4244: 'function': conversion from 'Py_ssize_t' to 'unsigned long', possible loss of data
    cpyamf\amf0.c(5974): warning C4244: 'function': conversion from 'Py_ssize_t' to 'unsigned short', possible loss of data
    cpyamf\amf0.c(5985): warning C4013: 'PyString_AS_STRING' undefined; assuming extern returning int
    cpyamf\amf0.c(5985): warning C4047: 'function': 'char *' differs in levels of indirection from 'int'
    cpyamf\amf0.c(5985): warning C4024: 'function through pointer': different types for formal and actual parameter 2
    cpyamf\amf0.c(6185): warning C4244: 'function': conversion from 'Py_ssize_t' to 'unsigned long', possible loss of data
    cpyamf\amf0.c(6197): warning C4244: 'function': conversion from 'Py_ssize_t' to 'unsigned short', possible loss of data
    cpyamf\amf0.c(6208): warning C4047: 'function': 'char *' differs in levels of indirection from 'int'
    cpyamf\amf0.c(6208): warning C4024: 'function through pointer': different types for formal and actual parameter 2
    cpyamf\amf0.c(6420): warning C4244: 'function': conversion from 'Py_ssize_t' to 'unsigned long', possible loss of data
    cpyamf\amf0.c(6429): warning C4047: 'function': 'char *' differs in levels of indirection from 'int'
    cpyamf\amf0.c(6429): warning C4024: 'function through pointer': different types for formal and actual parameter 2
    C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\BIN\x86_amd64\link.exe /nologo /INCREMENTAL:NO /LTCG /DLL /MANIFEST:EMBED,ID=2 /MANIFESTUAC:NO /LIBPATH:D:\AppData\Anaconda3\libs /LIBPATH:D:\AppData\Anaconda3\PCbuild\amd64 "/LIBPATH:C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\LIB\amd64" "/LIBPATH:C:\Program Files (x86)\Windows Kits\10\lib\10.0.10240.0\ucrt\x64" "/LIBPATH:C:\Program Files (x86)\Windows Kits\8.1\lib\winv6.3\um\x64" "/LIBPATH:C:\Program Files (x86)\IBM\WebSphere MQ\tools\lib64" "/LIBPATH:C:\Program Files (x86)\IBM\WebSphere MQ\tools\lib" /EXPORT:PyInit_amf0 build\temp.win-amd64-3.6\Release\cpyamf\amf0.obj /OUT:build\lib.win-amd64-3.6\cpyamf\amf0.cp36-win_amd64.pyd /IMPLIB:build\temp.win-amd64-3.6\Release\cpyamf\amf0.cp36-win_amd64.lib
    amf0.obj : warning LNK4197: export 'PyInit_amf0' specified multiple times; using first specification
       Creating library build\temp.win-amd64-3.6\Release\cpyamf\amf0.cp36-win_amd64.lib and object build\temp.win-amd64-3.6\Release\cpyamf\amf0.cp36-win_amd64.exp
    amf0.obj : error LNK2001: unresolved external symbol PyString_GET_SIZE
    amf0.obj : error LNK2001: unresolved external symbol PyString_AS_STRING
    amf0.obj : error LNK2001: unresolved external symbol PyString_FromStringAndSize
    build\lib.win-amd64-3.6\cpyamf\amf0.cp36-win_amd64.pyd : fatal error LNK1120: 3 unresolved externals
    error: command 'C:\\Program Files (x86)\\Microsoft Visual Studio 14.0\\VC\\BIN\\x86_amd64\\link.exe' failed with exit status 1120


    ----------------------------------------

Command "D:\AppData\Anaconda3\python.exe -u -c "import setuptools, tokenize;__file__='C:\\Users\\DELL\\AppData\\Local\\Temp\\pip-build-soh0ppan\\pyamf\\setup.py';f=getattr(tokenize, 'open', open)(__file__);code=f.read().replace('\r\n', '\n');f.close();exec(compile(code, __file__, 'exec'))" install --record C:\Users\DELL\AppData\Local\Temp\pip-e09_kv6r-record\install-record.txt --single-version-externally-managed --compile" failed with error code 1 in C:\Users\DELL\AppData\Local\Temp\pip-build-soh0ppan\pyamf\


经查询PyAMF最新版本为0.8.0,项目已经两年多未更新了,并且官网都没了,现在可在:https://pypi.python.org/pypi/PyAMF下载;PyAMF只支持32位Python,由于我系统是64位并安装的Python是64位,不想重新安装32位的,找到如下办法:

找到一个PyAMF的fork 项目支持64位Python,项目地址:https://github.com/StdCarrot/Py3AMF

C:\Users\DELL>pip install Py3AMF
Collecting Py3AMF
  Downloading Py3AMF-0.8.7.tar.gz (1.6MB)
    100% |████████████████████████████████|1.6MB 193kB/s
Requirement already satisfied: defusedxml in d:\appdata\anaconda3\lib\site-packages\defusedxml-0.5.0-py3.6.egg (from Py3AMF)
Building wheels for collected packages: Py3AMF
  Running setup.py bdist_wheel for Py3AMF ... done
  Stored in directory: C:\Users\DELL\AppData\Local\pip\Cache\wheels\25\0b\76\6981f861a2aef3724fc8e442f3c6bf0542786f10fc7fe5b7a1
Successfully built Py3AMF
Installing collected packages: Py3AMF
Successfully installed Py3AMF-0.8.7


C:\Users\DELL>


安装后报错:



修改报错文件217行:



OK,可以来解析数据了:


<think>好的,我需要解决用户遇到的“cl.exe failed with exit status 2”错误。首先,这个错误通常出现在Windows环境下使用Python安装需要编译的包时,比如pycrypto或者wordcloud。用户可能没有正确配置C++编译环境。 根据引用[1]和[2],用户可能在安装某些Python包时遇到了这个问题,尤其是那些需要编译C/C++扩展的包。首先,我应该检查用户是否安装了Visual Studio的C++构建工具。根据引用[3],安装Visual Studio并确保勾选C++开发组件是关键步骤。特别是需要安装MSVC工具集和Windows SDK。 另外,引用[4]提到即使安装了VS,环境变量可能没有正确设置。这时候需要确保cl.exe的路径(通常是C:\Program Files (x86)\Microsoft Visual Studio\2019\BuildTools\VC\Tools\MSVC\版本号\bin\Hostx64\x64)被添加到系统环境变量中。同时,用户可能需要以管理员权限运行命令提示符,避免权限问题。 还有,有时候直接使用预编译的whl文件可以绕过编译步骤。引用[4]提到安装lxml的whl文件解决了问题,所以建议用户访问如https://www.lfd.uci.edu/~gohlke/pythonlibs/这样的站点下载对应版本的whl文件进行安装。这样可以避免本地编译带来的问题。 此外,用户可能需要升级setuptools和wheel,使用命令pip install --upgrade setuptools wheel,确保这些工具是最新的,有助于解决兼容性问题。 最后,如果所有步骤都正确但问题依旧,可能需要检查错误日志,查看具体哪部分编译失败。用户可以通过详细日志(pip install package -vvv)来获取更多信息,从而针对性地解决问题。 总结下来,解决方案包括安装Visual Studio的C++工具、配置环境变量、使用预编译包、升级工具链以及检查日志。需要一步步引导用户排查可能的原因,并提供多种解决途径。</think>针对“cl.exe failed with exit status 2”编译错误的解决方案如下: --- ### 1. **安装Visual Studio的C++编译工具** 此错误通常因缺少C/C++编译环境导致。需安装 **Visual Studio的C++生成工具**: 1. 下载并运行[Visual Studio Installer](https://visualstudio.microsoft.com/zh-hans/downloads/) 2. 在“工作负载”中选择 **“使用C++的桌面开发”** 3. 勾选以下组件: - MSVC(如MSVC v142 - VS 2019 C++ x64/x86生成工具) - Windows 10/11 SDK - C++ CMake工具(可选但推荐)[^1][^3] 4. 完成安装后重启系统。 --- ### 2. **配置环境变量** 确保`cl.exe`路径已添加到系统环境变量: - 默认路径示例: `C:\Program Files (x86)\Microsoft Visual Studio\2019\BuildTools\VC\Tools\MSVC\14.29.30133\bin\Hostx64\x64` - 操作步骤: 1. 右键“此电脑” → 属性 → 高级系统设置 → 环境变量 2. 在“系统变量”的`Path`中添加上述路径。 --- ### 3. **以管理员权限运行命令提示符** 权限不足可能导致编译失败。右键点击命令提示符或PowerShell,选择 **“以管理员身份运行”**,再执行安装命令。 --- ### 4. **使用预编译的whl文件** 对于某些复杂库(如`wordcloud`、`pycrypto`),可直接安装预编译的二进制包: 1. 访问第三方库站点(如[Python Extension Packages](https://www.lfd.uci.edu/~gohlke/pythonlibs/)) 2. 下载对应Python版本及系统位数的`.whl`文件 3. 执行安装: ```bash pip install 文件路径\包名.whl ``` [^4] --- ### 5. **升级pip和setuptools** 旧版本工具链可能导致兼容性问题: ```bash pip install --upgrade pip setuptools wheel ``` --- ### 6. **检查错误日志** 若问题依旧,通过详细日志定位具体错误: ```bash pip install 包名 -vvv ``` 查看输出中标记为`error:`的部分,例如缺少头文件或特定编译选项。 --- ### 7. **其他注意事项** - 确保Python版本与库兼容(如Python 3.10+可能需要最新库版本)。 - 关闭杀毒软件,避免误拦截编译进程。 - 尝试使用`conda`安装(部分库可通过conda自动处理依赖)。 ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值