2017-02-18 7 views
-2

Я запускаю Linux Ubuntu 16.04 LTS. Я установил pip для загрузки пакетов сторонних производителей для Python. Python 2.7 и 3.5.2 пришли с моим дистрибутивом Linux, но я установил 3.6 позже. Теперь я пытаюсь установить Scipy. Следуя инструкции по установке стеки SciPy на scipy.org, я побежал следующую команду (после того, как предыдущий пункт установить) в терминале:Скудная установка на Python3

pip install --user numpy scipy matplotlib ipython jupyter pandas sympy nose 

Проблема заключается в только устанавливает пакеты для Python 2.7, а не 3.5.2 или 3.6. Как заставить установки работать в Python 3.x? Руководство высоко ценится. Мои волосы становятся серыми над этим, и я не могу получить правильные результаты от Google.

+1

Вы изучили установку python3: 'sudo apt-get install python3-pip', а затем с помощью' pip3' (вместо 'pip') установить пакеты? – Akavall

+1

Я бы рекомендовал заглянуть в [virtualenv] (https://virtualenv.pypa.io/en/stable/) или использовать [Anaconda] (https://www.continuum.io/downloads) и создать среду для ваших разных версий python – Grr

ответ

2

Могу ли я рекомендовать Anaconda? https://www.continuum.io/

Anaconda (a.k.a. Conda) - это кросс-платформенный менеджер пакетов, который поддерживает Windows, Mac и Linux. Он был разработан для решения проблем с другими менеджерами пакетов (например, easy-install, pip, distutils).

Конда решает много проблем с упаковкой. После установки Conda вы можете установить нужные пакеты, не опасаясь, что они не сработают. Вы также можете создавать «виртуальные среды». Вы хотите, чтобы Python2 и Python3 находились в одной системе? Готово.

conda create -n Python2 python=2.7.13 
conda create -n Python3 python=3.6.0 

Чтобы переключиться на один, вы бы:

activate Python2 

Теперь вы находитесь в среде python2.

Вы можете назвать среду, что бы вы ни хотели.

Вот очень полезное 20-минутное видео от Aaron Meurer от Continuum, дающее представление о Conda на SciPy 2014. (https://www.youtube.com/watch?v=UaIvrDWrIWM) Я смотрел это видео, и это изменило мою жизнь навсегда (в отношении среды и упаковки Python).

С Конда, чтобы создать SciPy2 и SciPy3 среды:

>conda search scipy 
Fetching package metadata ........... 
scipy      0.11.0    np17py27_1 defaults 
          0.11.0    np16py27_1 defaults 
          0.11.0    np17py26_1 defaults 
          0.11.0    np16py26_1 defaults 
          0.12.0    np17py26_0 defaults 
          0.12.0    np17py33_0 defaults 
          0.12.0    np17py27_0 defaults 
          0.12.0    np16py27_p0 defaults  [mkl] 
          0.12.0    np17py27_p0 defaults  [mkl] 
             <<Truncated>> 
          0.18.0    np111py34_0 defaults 
          0.18.0    np111py35_0 defaults 
          0.18.0    np111py27_0 defaults 
          0.18.1    np111py35_0 defaults 
          0.18.1    np111py27_0 defaults 
          0.18.1    np111py36_0 defaults 
          0.18.1    np111py34_0 defaults 
          0.18.1    np112py27_1 defaults 
          0.18.1    np111py34_1 defaults 
          0.18.1    np112py36_1 defaults 
          0.18.1    np111py36_1 defaults 
          0.18.1    np112py35_1 defaults 
          * 0.18.1    np111py27_1 defaults 
          0.18.1    np111py35_1 defaults 

>conda search python 
Fetching package metadata ........... 
python      2.6.8       5 defaults 
          2.6.8       6 defaults 
          2.6.9       0 defaults 
          2.6.9       1 defaults 
          2.7.3       2 defaults 
             <<Truncated>> 
          2.7.10      0 defaults 
          2.7.10      1 defaults 
          2.7.10      3 defaults 
          2.7.10      4 defaults 
          2.7.10      5 defaults 
          2.7.11      0 defaults 
          2.7.11      1 defaults 
          2.7.11      2 defaults 
          2.7.11      4 defaults 
          2.7.11      5 defaults 
          2.7.12      0 defaults 
          * 2.7.13      0 defaults 
          3.3.0       4 defaults 
          3.3.1       0 defaults 
          3.3.2       0 defaults 
          3.3.3       0 defaults 
          3.3.4       0 defaults 
          3.3.5       0 defaults 
             <<Truncated>> 
          3.5.1       0 defaults 
          3.5.1       1 defaults 
          3.5.1       2 defaults 
          3.5.1       4 defaults 
          3.5.1       5 defaults 
          3.5.2       0 defaults 
          3.6.0       0 defaults 

>conda create -n SciPy2 python=2.7.13 scipy=0.18.1 
Fetching package metadata ........... 
Solving package specifications: . 

Package plan for installation in environment D:\Applications\Anaconda\envs\SciPy2: 

The following NEW packages will be INSTALLED: 

    mkl:   2017.0.1-0 
    numpy:   1.12.0-py27_0 
    pip:   9.0.1-py27_1 
    python:   2.7.13-0 
    scipy:   0.18.1-np112py27_1 
    setuptools:  27.2.0-py27_1 
    vs2008_runtime: 9.00.30729.5054-0 
    wheel:   0.29.0-py27_0 

Proceed ([y]/n)? y 

numpy-1.12.0-p 100% |###############################| Time: 0:00:00 10.88 MB/s 
scipy-0.18.1-n 100% |###############################| Time: 0:00:00 13.49 MB/s 
# 
# To activate this environment, use: 
# > activate SciPy2 
# 
# To deactivate this environment, use: 
# > deactivate SciPy2 
# 
# * for power-users using bash, you must source 
# 


>conda create -n SciPy3 python=3.6.0 scipy=0.18.1 
Fetching package metadata ........... 
Solving package specifications: . 

Package plan for installation in environment D:\Applications\Anaconda\envs\SciPy3: 

The following NEW packages will be INSTALLED: 

    mkl:   2017.0.1-0 
    numpy:   1.12.0-py36_0 
    pip:   9.0.1-py36_1 
    python:   3.6.0-0 
    scipy:   0.18.1-np112py36_1 
    setuptools:  27.2.0-py36_1 
    vs2015_runtime: 14.0.25123-0 
    wheel:   0.29.0-py36_0 

Proceed ([y]/n)? y 

vs2015_runtime 100% |###############################| Time: 0:00:00 9.96 MB/s 
python-3.6.0-0 100% |###############################| Time: 0:00:02 12.86 MB/s 
numpy-1.12.0-p 100% |###############################| Time: 0:00:00 13.61 MB/s 
setuptools-27. 100% |###############################| Time: 0:00:00 13.15 MB/s 
wheel-0.29.0-p 100% |###############################| Time: 0:00:00 18.89 MB/s 
pip-9.0.1-py36 100% |###############################| Time: 0:00:00 11.73 MB/s 
scipy-0.18.1-n 100% |###############################| Time: 0:00:00 12.76 MB/s 
# 
# To activate this environment, use: 
# > activate SciPy3 
# 
# To deactivate this environment, use: 
# > deactivate SciPy3 
# 
# * for power-users using bash, you must source 
# 


>activate SciPy3 

(SciPy3) > 

Примечание: Я просто сделал это на Windows. Он работает так же на Mac и Linux, за исключением того, что он говорит, используя Bash, который вы должны использовать, прежде чем активировать.

Надеюсь, это поможет вам, поскольку это мне помогло.

2

Как уже упоминалось, @Akavall, на данный момент вы установили пипс Python2.x, и именно этот пип, который вы используете для установки пакетов при запуске этой команды pip install --user numpy scipy matplotlib ipython jupyter pandas sympy nose. Для установки пакетов для Python3.x вам необходимо установить питон Python3.x, на который ссылаются как pip3. Чтобы установить PIP3, выполните следующую команду из вашего терминала:

sudo apt-get install python3-pip

После PIP3 был установлен, вы можете установить пакеты для python3.x с помощью:

pip3 install <module-name>

Обратите внимание, что вы все равно можете продолжать работать как Python2.x, так и Python3.x вдоль друг друга на одной машине, вам не нужно удалять python2.x.

Вы можете продолжать устанавливать пакеты для Python2.x, как вы делали, используя:

pip install <module-name>

и установки пакетов для python3.x с помощью:

pip3 install <module-name>

Наконец, для запуска Python3.x на вашем терминале вам нужно будет ввести:

python3

в отличие от python (относится к python2.x). Например, если у вас есть сценарий под названием Hello.py, чтобы выполнить этот скрипт из терминала, используя Python3.x выполнить следующие действия:

python3.x Hello.py 

запустить тот же сценарий с помощью Python2.x, вы выполните следующие действия :

python2.x Hello.py 

или:

python Hello.py 

Так, в одном предложении, pip точек на python2, вист pip3 указывает на Python3. См. this question for more information.

Надеюсь, что ответит на ваш вопрос :). Еще раз, я просто расширяюсь на хороший комментарий, уже приведенный выше @Akavall, поэтому кредит принадлежит @Akavall.

+0

Мое удовольствие, я рад, что смогу помочь :). Если ответ действительно решит вашу проблему, вы можете отметить его как правильный ответ - если он отвечает на ваш вопрос, то есть. –