Pip, pip3 и конфликтующие дистрибутивы Python

У меня проблемы с установкой пакетов Python PyTransit и ktransit в Anaconda 3 (в Linux). Кажется, что у многих других были подобные ошибки, но ни одно из их решений не помогло мне. Там происходит много вещей:

pip install ktransit дает:

/usr/bin/ld: /home/name/anaconda3/lib/libgfortran.a(pause.o): relocation R_X86_64_32 against `.rodata.str1.8' can not be used when making a shared object; recompile with -fPIC

/home/name/anaconda3/lib/libgfortran.a: error adding symbols: Bad value
    collect2: error: ld returned 1 exit status

Я бы попробовал использовать./configure с --enable-shared, но там нет конфигурационного файла. Я пытался добавить extra_compile_args = ["-fPIC"], extra_link_args=["-fPIC"] в setup.py (как в https://github.com/h5py/h5py/issues/851), но это ничего не сделало.

pip install pytransit выдает разные ошибки:

 #warning "Using deprecated NumPy API, disable it by " \

Warning: src/gimenez.f90:35: Illegal preprocessor directive
    Warning: src/gimenez.f90:36: Illegal preprocessor directive
    Warning: src/gimenez.f90:37: Illegal preprocessor directive
    src/gimenez.f90:271.33:

        real(8), dimension(CHUNK_SIZE, npol) :: d
                                     1
    Error: Symbol 'chunk_size' at (1) has no IMPLICIT type

Вот где это становится интересным. Использование pip3 (или sudo pip) позволяет успешно установить ktransit, но ничего не делает для pytransit. Pip и pip3, похоже, привязаны к разным местам:

which pip
/home/name/anaconda3/bin/pip

 which pip3
/usr/local/bin/pip3

which python
/home/name/anaconda3/bin/python

Наконец, когда я пытаюсь импортировать ktransit в блокнот jupyter через anaconda, происходит сбой, но когда я импортирую ktransit в Jupyter QtConsole, он завершается успешно, но, похоже, содержит сам себя и не обеспечивает реальной функциональности. Я имею в виду, что я не могу ссылаться на что-либо внутри модуля, и:

Help on package ktransit:

NAME
    ktransit

PACKAGE CONTENTS
    ktransit (package)
    setup

FILE
    (built-in)

Я думаю, что какая-либо версия python, связанная с /usr/bin, каким-то образом мешает мне... или, может быть, что-то не так с моим gcc или libgfortran? У меня gcc версий 4.8.5 и 6 (gcc --version дает 4.8.5, но -update-alternatives говорит, что есть только одна версия, 6).

Спасибо, что нашли время, чтобы прочитать это далеко. Буду очень признателен за любые предложения или идеи!

1 ответ

Разобрался - я удалил Anaconda, убедился, что мой python указывает в правильном направлении, а затем использовал sudo python -m pip install. Спасибо Нагеву за то, что он заставил меня избавиться от Анаконды!

Другие вопросы по тегам