Ошибка gcc-4.2 при использовании pip в virtualenv на OSX 10.7 - PullRequest
3 голосов
/ 31 октября 2011

Я пытаюсь установить psycopg2 в среде virtualenv, и у меня чертовски много времени. Я думаю, что, возможно, что-то напортачило, потому что я установил virtualenv, а затем обновился до Xcode 4.

(my_enviroment)my_users-macbook-2:my_enviroment my_user$ pip install psycopg2

Создает это сообщение:

Downloading/unpacking psycopg2==2.4.2
  Running setup.py egg_info for package psycopg2

    no previously-included directories found matching 'doc/src/_build'
Installing collected packages: psycopg2
  Running setup.py install for psycopg2
    building 'psycopg2._psycopg' extension
    gcc-4.2 -fno-strict-aliasing -fno-common -dynamic -isysroot /Developer/SDKs/MacOSX10.6.sdk -arch i386 -arch x86_64 -g -O2 -DNDEBUG -g -O3 -DPSYCOPG_DEFAULT_PYDATETIME=1 -DPSYCOPG_VERSION="2.4.2 (dt dec pq3 ext)" -DPG_VERSION_HEX=0x090004 -DPSYCOPG_EXTENSIONS=1 -DPSYCOPG_NEW_BOOLEAN=1 -DHAVE_PQFREEMEM=1 -I/Library/Frameworks/Python.framework/Versions/2.7/include/python2.7 -I. -I/usr/include -I/usr/include/postgresql/server -c psycopg/psycopgmodule.c -o build/temp.macosx-10.6-intel-2.7/psycopg/psycopgmodule.o
    unable to execute gcc-4.2: No such file or directory
    error: command 'gcc-4.2' failed with exit status 1
    Complete output from command /Users/my_user/my_enviroment/bin/python -c "import setuptools;__file__='/Users/my_user/my_enviroment/build/psycopg2/setup.py';exec(compile(open(__file__).read().replace('\r\n', '\n'), __file__, 'exec'))" install --single-version-externally-managed --record /var/folders/b8/jflj9btd4rzb80xfmcy_rk140000gn/T/pip-lojVKc-record/install-record.txt --install-headers /Users/my_user/my_enviroment/bin/../include/site/python2.7:
    running install

running build

running build_py

running build_ext

building 'psycopg2._psycopg' extension

gcc-4.2 -fno-strict-aliasing -fno-common -dynamic -isysroot /Developer/SDKs/MacOSX10.6.sdk -arch i386 -arch x86_64 -g -O2 -DNDEBUG -g -O3 -DPSYCOPG_DEFAULT_PYDATETIME=1 -DPSYCOPG_VERSION="2.4.2 (dt dec pq3 ext)" -DPG_VERSION_HEX=0x090004 -DPSYCOPG_EXTENSIONS=1 -DPSYCOPG_NEW_BOOLEAN=1 -DHAVE_PQFREEMEM=1 -I/Library/Frameworks/Python.framework/Versions/2.7/include/python2.7 -I. -I/usr/include -I/usr/include/postgresql/server -c psycopg/psycopgmodule.c -o build/temp.macosx-10.6-intel-2.7/psycopg/psycopgmodule.o

unable to execute gcc-4.2: No such file or directory

error: command 'gcc-4.2' failed with exit status 1

----------------------------------------
Command /Users/my_user/my_enviroment/bin/python -c "import setuptools;__file__='/Users/my_user/my_enviroment/build/psycopg2/setup.py';exec(compile(open(__file__).read().replace('\r\n', '\n'), __file__, 'exec'))" install --single-version-externally-managed --record /var/folders/b8/jflj9btd4rzb80xfmcy_rk140000gn/T/pip-lojVKc-record/install-record.txt --install-headers /Users/my_user/my_enviroment/bin/../include/site/python2.7 failed with error code 1
Storing complete log in /Users/my_user/.pip/pip.log

Я использую OSX 10.7, Python 2.7.2, pip 1.0.2, Xcode 4.

Я пробовал следующие решения, но безуспешно:

Невозможно установить psycopg2 на OSX 10.6.7 с XCode4

Ошибка GCC: команда 'gcc-4.0' завершилась неудачно с состоянием выхода 1

Есть мысли? Какую еще информацию вы должны знать?

Ответы [ 5 ]

6 голосов
/ 08 декабря 2011

Та же проблема.Lion, последний xcode.

Я скачал и установил свежий 2.7.2 python и один virtualenv.

$ which pip
/opt/local/py_env/default/bin/pip
(default)default $ python
Python 2.7.2 (v2.7.2:8527427914a2, Jun 11 2011, 15:22:34) 
[GCC 4.2.1 (Apple Inc. build 5666) (dot 3)] on darwin
Type "help", "copyright", "credits" or "license" for more information.
>>> quit()
(default)default $ which python
/opt/local/py_env/default/bin/python

Я добавил:

export CC=/usr/bin/gcc

на основездесь много ответов о том, почему pip / easy_install и т. д. имеют проблемы с Lion.Это решило проблему компиляции, но не удалось с той же ошибкой на шаге ссылки:

    /usr/bin/gcc -fno-strict-aliasing -fno-common -dynamic -isysroot /DeveloperSDKs/MacOSX10.6.sdk -g -O2 -DNDEBUG -g -O3 -arch i386 -arch x86_64 PSYCOPG_DEFAULT_PYDATETIME=1 -DPSYCOPG_VERSION="2.4.2 (dt dec pq3 ext)" -DPG_VERSION_HEX=0x080401 -DPSYCOPG_EXTENSIONS=1 -DPSYCOPG_NEW_BOOLEAN=1 -DHAVE_PQFREEMEM=1 -I/Library/Frameworks/Python.framework/Versions/2.7/include/python2.7 -I. -I/Library/PostgreSQL/8.4/include -I/Library/PostgreSQL/8.4/include/postgresql/server -c psycopg/typecast.c -o build/temp.macosx-10.6-intel-2.7/psycopg/typecast.o

gcc-4.2 -bundle -undefined dynamic_lookup -isysroot /Developer/SDKs/MacOSX10.6.sdk -isysroot /Developer/SDKs/MacOSX10.6.sdk -g -arch i386 -arch x86_64 build/temp.macosx-10.6-intel-2.7/psycopg/psycopgmodule.o build/temp.macosx-10.6-intel-2.7/psycopg/green.o build/temp.macosx-10.6-intel-2.7/psycopg/pqpath.o build/temp.macosx-10.6-intel-2.7/psycopg/utils.o build/temp.macosx-10.6-intel-2.7/psycopg/bytes_format.o build/temp.macosx-10.6-intel-2.7/psycopg/connection_int.o build/temp.macosx-10.6-intel-2.7/psycopg/connection_type.o build/temp.macosx-10.6-intel-2.7/psycopg/cursor_int.o build/temp.macosx-10.6-intel-2.7/psycopg/cursor_type.o build/temp.macosx-10.6-intel-2.7/psycopg/lobject_int.o build/temp.macosx-10.6-intel-2.7/psycopg/lobject_type.o build/temp.macosx-10.6-intel-2.7/psycopg/notify_type.o build/temp.macosx-10.6-intel-2.7/psycopg/xid_type.o build/temp.macosx-10.6-intel-2.7/psycopg/adapter_asis.o build/temp.macosx-10.6-intel-2.7/psycopg/adapter_binary.o build/temp.macosx-10.6-intel-2.7/psycopg/adapter_datetime.o build/temp.macosx-10.6-intel-2.7/psycopg/adapter_list.o build/temp.macosx-10.6-intel-2.7/psycopg/adapter_pboolean.o build/temp.macosx-10.6-intel-2.7/psycopg/adapter_pdecimal.o build/temp.macosx-10.6-intel-2.7/psycopg/adapter_pint.o build/temp.macosx-10.6-intel-2.7/psycopg/adapter_pfloat.o build/temp.macosx-10.6-intel-2.7/psycopg/adapter_qstring.o build/temp.macosx-10.6-intel-2.7/psycopg/microprotocols.o build/temp.macosx-10.6-intel-2.7/psycopg/microprotocols_proto.o build/temp.macosx-10.6-intel-2.7/psycopg/typecast.o -L/Library/PostgreSQL/8.4/lib -lpq -lssl -lcrypto -o build/lib.macosx-10.6-intel-2.7/psycopg2/_psycopg.so

unable to execute gcc-4.2: No such file or directory

1) Я подумал, что установив свой собственный Python 2.7.2, я обойдусь вокруг необходимости использоватьтрюк CC, потому что я установил свой питон свежим.Почему нет?

2) Есть ли похожий трюк для имени компоновщика?Это может быть довольно глубоко в distutils.

РЕДАКТИРОВАТЬ: РАЗРЕШЕНО После многих предложений блога / SO мне помогло следующее: Напомним, я использую virtualenv с запущенным python 2.7.2 0) добавил символическую ссылкув / bin: ln -s / usr / bin / gcc gcc-4.2 1) Установлены последние Postgres.Я обновился с 8.4 до 9.1.Не удалить 8.4, не потерял мои базы данных.2) добавлен /Library/PostgreSQL/9.1/bin в $ PATH.Я сделал это в своем .profile, потому что там уже было 8.4 / bin, вероятно, по той же причине.3) pip install psycopg2

Я до сих пор не уверен, зачем мне нужна символическая ссылка в этой ситуации.Возможно, потому что я не собрал 2.7.2 из исходников.

Однако все мои приложения django / postgres работают.Символическая ссылка позволяет мне устанавливать другие пакеты, которые также ссылаются на gcc-4.2 в моем virtualenv.

5 голосов
/ 31 октября 2011

Ваша ошибка такая:

unable to execute gcc-4.2: No such file or directory

Это означает, что gcc-4.2 не установлен.

Либо понизьте (или обновите) версию GCC, либо измените пакет для сборки с помощью команды gcc.

Немного более хакерским было бы ln gcc-4.2 для команды gcc.

4 голосов
/ 27 сентября 2012

Я обнаружил, что самый простой способ установить PIL на 10.7 - это создать символическую ссылку с gcc-4.2 на gcc.

sudo ln -s /usr/bin/gcc /usr/bin/gcc-4.2
easy_install pil
0 голосов
/ 13 ноября 2016

Я устанавливал mysqlclient на OSX Sierra в venv w / 2.7.7 и сделал следующее:

xcode-select --install
export CC=gcc
export LDSHARED="gcc -Wl,-x -dynamiclib -undefined dynamic_lookup"
pip install mysqlclient

Кажется, работает - пакет gcc-4.2, кажется, каким-то образом приходит из setuptools build_ext.

0 голосов
/ 21 сентября 2013

попробуйте

$ sudo apt-get install python-dev
...