py2exe ошибка на MSVCR80.dll

1
from distutils.core import setup
import py2exe,sys,os

sys.argv.append('py2exe')

try:
        setup(
   options = {'py2exe': {'bundle_files': 1}}, 
   console=['my_console_script.py'], 
   zipfile = None,
   )
except Exception, e:
 print e

<сильные > выходы:

> running py2exe
> *** searching for required modules ***
> *** parsing results ***
> *** finding dlls needed *** Traceback (most recent call last):   File
> "C:\scripts\download_ghost_recon\setup.py",
> line 26, in <module>
>     zipfile = None,   File "C:\Python26\lib\distutils\core.py",
> line 162, in setup
>     raise SystemExit, error SystemExit: error: MSVCR80.dll: No
> such file or directory

Я нахожусь на python 2.6 в Windows 7

Итак, как я могу удалить эту ошибку MSVCR80.dll и скомпилировать мой script?

В других сценариях я могу запустить тот же setup.py и не получать эту ошибку.

Это заставляет меня думать, что в этом script py2exe нуждается в этом файле MSVCR80.dll

Я также пробовал этот код, который я нашел здесь: http://www.py2exe.org/index.cgi/OverridingCriteraForIncludingDlls но это также не сработало.

from distutils.core import setup
import py2exe,sys,os

origIsSystemDLL = py2exe.build_exe.isSystemDLL
def isSystemDLL(pathname):
        if os.path.basename(pathname).lower() in ("msvcp71.dll", "dwmapi.dll"):
                return 0
        return origIsSystemDLL(pathname)
py2exe.build_exe.isSystemDLL = isSystemDLL

sys.argv.append('py2exe')

try:
        setup(
            options = {'py2exe': {'bundle_files': 1}}, 
            console=['my_console_script.py'], 
            zipfile = None,
            )
except Exception, e:
    print e

* EDIT Я также выполнил поиск на моем компьютере для этого файла, он находится в следующих местах:

C:\Windows\winsxs\x86_microsoft.vc80.crt_1fc8b3b9a1e18e3b_8.0.50727.762_none_10b2f55f9bffb8f8
C:\Windows\winsxs\x86_microsoft.vc80.crt_1fc8b3b9a1e18e3b_8.0.50727.4053_none_d08d7da0442a985d
C:\Windows\winsxs\x86_microsoft.vc80.crt_1fc8b3b9a1e18e3b_8.0.50727.4927_none_d08a205e442db5b5
Теги:
py2exe

1 ответ

2

Добавляйте к вашему вызову setup:

{ 'py2exe': { ...,
              'dll_excludes': [ 'msvcr80.dll', 'msvcp80.dll',
                                'msvcr80d.dll', 'msvcp80d.dll',
                                'powrprof.dll', 'mswsock.dll' ] }, ...

Если вы хотите включить визуализационные библиотеки времени выполнения Visual C в приложение, посмотрите, какие дистрибутивные загрузки выполняются Microsoft. Возможно, вы используете библиотеку или модуль, которые импортируются в это приложение, но не другие, о которых вы говорите. Может быть хорошей идеей проверить, можете ли вы перекомпилировать их с помощью Visual Studio 2008, потому что это то, что используется для создания стандартных сборок Windows Python 2.6.

  • 0
    Я в замешательстве .. вы хотите, чтобы я включил эти файлы, но в коде, который вы написали 'dll_exlude'. В любом случае, он на этот раз скомпилировался без ошибок, но когда я запускаю скомпилированный скрипт, он выдает ошибки и быстро мигает, прежде чем я можно увидеть сообщение об ошибке.
  • 0
    Вы должны указать py2exe не копировать эти файлы, а затем позже вы можете скопировать их самостоятельно. Тот факт, что приложение быстро исчезает, заключается в том, что приложение не может найти необходимые ему библиотеки DLL. Взгляните на распространяемые загрузки среды выполнения здесь: microsoft.com/downloads/… и скопируйте эти библиотеки DLL в каталог вашего приложения. Вы можете сделать то же самое для библиотек времени выполнения VS2008.
Показать ещё 2 комментария

Ещё вопросы

Сообщество Overcoder
Наверх
Меню