Анаконда Python 32-бит пытается загрузить 64-битные библиотеки Anaconda

Я нахожусь в Windows 7 64-bit и пытаюсь использовать 64-разрядные и 32-разрядные дистрибутивы Anaconda Python в одной и той же системе.

Я хочу иметь возможность создавать 32-битные исполняемые файлы Windows для распространения (с py2exe), что требует использования 32-битного интерпретатора python. Ранее я установил 64-битный Anaconda Python в C: \ Anaconda. Теперь я установил 32-битный дистрибутив Anaconda Python в C: \ Anaconda32. Однако, когда я пытаюсь запустить интерпретатор python из C: \ Anaconda32 \ python.exe, он загружает 64-битную среду в мой sys.path. В результате многие вызовы библиотеки выходят из строя из-за 32-разрядного процесса, пытающегося выполнить 64-битные библиотеки (я думаю).

Я также попытался отредактировать путь внутри сеанса cmd.exe, чтобы включить только C: \ Anaconda32 и C: \ Anaconda32 \ Scripts.

Вот результат:

C:\Anaconda32>echo %path% C:\Anaconda32;C:\Anaconda32\Scripts C:\Anaconda32>python.exe Python 2.7.7 |Anaconda 2.0.1 (64-bit)| (default, Jun 11 2014, 10:41:43) [MSC v.1500 32 bit (Intel)] on win32 Type "help", "copyright", "credits" or "license" for more information. Anaconda is brought to you by Continuum Analytics. Please check out: http://continuum.io/thanks and https://binstar.org >>> import sys >>> sys.executable 'C:\\Anaconda32\\python.exe' >>> sys.path ['', 'C:\\Anaconda32\\python27.zip', 'C:\\Anaconda\\DLLs', 'C:\\Anaconda\\lib', 'C:\\Anaconda\\lib\\plat-win', 'C:\\Anaconda\\lib\\lib-tk', 'C:\\Anaco nda32', 'C:\\Anaconda', 'C:\\Anaconda\\lib\\site-packages', 'C:\\Anaconda\\lib\\site-packages\\PIL', 'C:\\Anaconda\\lib\\site-packages\\win32', 'C:\\A naconda\\lib\\site-packages\\win32\\lib', 'C:\\Anaconda\\lib\\site-packages\\Pythonwin', 'C:\\Anaconda\\lib\\site-packages\\runipy-0.1.0-py2.7.egg', ' C:\\Anaconda\\lib\\site-packages\\setuptools-3.6-py2.7.egg'] >>> 

Проблемы с C:\Anaconda\DLLs , C:\Anaconda\lib и т. Д. Это должны быть C:\Anaconda32\*

Я также хотел бы отметить, что, хотя он говорит, что Anaconda 2.0.1 (64-bit) [MSC v.1500 32 bit (Intel)] Anaconda 2.0.1 (64-bit) позже на этой строке содержит информацию о компиляторе: [MSC v.1500 32 bit (Intel)] который указывает, что 32-разрядный интерпретатор Бег. Вызов sys.executable также показывает, что работает правильный интерпретатор.

Это результат при загрузке большинства модулей:

 >>> import numpy as np Traceback (most recent call last): File "<stdin>", line 1, in <module> File "C:\Anaconda\lib\site-packages\numpy\__init__.py", line 168, in <module> from . import add_newdocs File "C:\Anaconda\lib\site-packages\numpy\add_newdocs.py", line 13, in <module> from numpy.lib import add_newdoc File "C:\Anaconda\lib\site-packages\numpy\lib\__init__.py", line 8, in <module> from .type_check import * File "C:\Anaconda\lib\site-packages\numpy\lib\type_check.py", line 11, in <module> import numpy.core.numeric as _nx File "C:\Anaconda\lib\site-packages\numpy\core\__init__.py", line 6, in <module> from . import multiarray ImportError: DLL load failed: %1 is not a valid Win32 application. >>> 

ImportError: DLL load failed: %1 is not a valid Win32 application. что происходит при попытке загрузить 64-битный скомпилированный модуль из 32-битного интерпретатора, я полагаю.

Как настроить среду для 32-разрядных так, чтобы она загружала 32-битные библиотеки? Я бы предпочел, чтобы моя 64-разрядная первичная установка оставалась незатронутой (чтобы оставаться по умолчанию при python )

Благодаря!

РЕДАКТИРОВАТЬ

На этом сайте показан пример того, как должен выглядеть 32-разрядный интерпретатор anaconda 2.0.1 …

Python 2.7.7 |Anaconda 2.0.1 (32-bit)| (default, Jun 11 2014, 10:41:43) [MSC v.1500 32 bit (Intel)]

Итак, тот факт, что у меня есть |Anaconda 2.0.1 (64-bit)| и [MSC v.1500 32 bit (Intel)] означает, что что-то очень не так …

One Solution collect form web for “Анаконда Python 32-бит пытается загрузить 64-битные библиотеки Anaconda”

Я считаю, что моя переменная среды PYTHONHOME была установлена ​​в C: \ Anaconda (64-разрядная установка). Когда я попытался запустить C: \ Anaconda32 \ python.exe, он увидел переменную PYTHONHOME и попытался использовать этот каталог в качестве места для загрузки библиотек. Это объясняется здесь в Документах Python.

Удалив PYTHONHOME, я могу запустить Anaconda 32-bit и 64-bit бок о бок. Независимо от того, что произойдет первым в моем пути, будет автоматически запускаться при наборе python в командной строке. Когда я открываю либо интерпретатор, я получаю правильную версию и информацию о битах, и они загружают правильные библиотеки. Кроме того, поскольку я выбрал установку каждого в качестве стандартного python во время установки, были установлены 32-разрядные и 64-битные ключи реестра python, позволяющие установщикам найти соответствующую установку.

Если вы хотите использовать несколько версий Python бок о бок, я рекомендую удалить PYTHONHOME и PYTHONPATH, если они вам не нужны, чтобы избежать столкновения среды между различными установками. Я мог ошибаться здесь, но это, похоже, решило мою проблему.

Чтобы быть полностью явным, я установил C: \ Anaconda32 и C: \ Anaconda64. Таким образом, если я вижу что-либо только с C: \ Anaconda, я знаю, что это неправильно.

  • Использование подпроцесса для запуска скрипта Python в Windows
  • Python 3.4 многопроцессорная очередь быстрее, чем Pipe, неожиданно
  • ImportError: Ошибка загрузки DLL при импорте win32clipboard в приложение, замороженное cx_Freeze
  • Общие способы подключения к odbc из python на окнах?
  • Запуск Python в Windows для зависимостей Node.js
  • PyKeyboard.tap_key () не работает, когда я отключается от удаленного рабочего стола
  • Ошибки после установки при установке pywin32-216 в Windows XP
  • Проблемы с numpy в PyCharm
  • Python - лучший язык программирования в мире.