Python в Synology, как получить установленные модули Python3 и где установлен Python2.7?

Подскажите, пожалуйста, как получить Python3 с модулями, запущенными на моей Synology (DS214play, с DSM 6.0.1-7393, обновление 1)? Что я хочу: запускать Tweepy и другие модули в Python3 на моей Synology.

Где я застрял

  1. Как получить PIP3 для установки Tweepy, если я пытаюсь получить: Requirement already up-to-date: pip in /usr/lib/python2.7/site-packages

    Видимо у меня установлен Python 2.7, но я не знал...

    root@DiskStation:/volume1/@appstore/python3/include# ls
    get-pip.py  python3.4m
    root@DiskStation:/volume1/@appstore/python3/include# python3 get-pip.py
    -ash: python3: command not found
    root@DiskStation:/volume1/@appstore/python3/include# python get-pip.py
    Requirement already up-to-date: pip in /usr/lib/python2.7/site-packages
    
  2. Поэтому, чтобы заставить работать PIP3, мне нужно понять, где установлен Python2.7 и, возможно, даже как его удалить (если это необходимо).

  3. И было бы хорошо узнать, какой пакет Python3 лучше всего использовать (по умолчанию из диспетчера пакетов Synology DSM или пакета SynoCommunity Python3).

Потому что я вижу Python3 в диспетчере пакетов DSM и в связанных папках при подключении через SSH (используя PuTTY) к моей Synology.

Но я не вижу никакого пакета для Python2.7 (который, я считаю, должен быть там), и я не могу найти какие-либо папки Python 2.7 при подключении по SSH, даже если у меня есть подсказка, что должен быть " /usr/lib/python2.7/site-packages "папка где-то...

-> Python3 по умолчанию из диспетчера пакетов Synology DSM находится в папке py3k:

admin@DiskStation: /volume1/@appstore/py3k/usr/local/bin$
python3

-> пакет SynoCommunity Python3 устанавливается в другом месте:

admin@DiskStation: /volume1/@appstore/python3$ ls
bin  etc  include  install.log  lib  openssl.cnf  share
admin@DiskStation: /volume1/@appstore/python3/bin$ ls
2to3      busybox  bzfgrep       bzmore     delgroup          fatattr    infocmp    lzmainfo  pip3      python3.4   reset     start-stop-daemon  tset        virtualenv-3.4  xz
2to3-3.4  bzcat    bzgrep        captoinfo  deluser           gpg-error  infotocap  mpicalc   pip3.4    python3.4m  shuf      tabs               unlink      wheel           xzcat
addgroup  bzcmp    bzip2         clear      dumpsexp          hmac256    lzcat      nice      pydoc3    pyvenv      speexdec  tic                unlzma      xmlcatalog      xzdec
adduser   bzdiff   bzip2recover  c_rehash   easy_install      idle3      lzma       openssl   pydoc3.4  pyvenv-3.4  speexenc  toe                unxz        xmllint
bunzip2   bzegrep  bzless        curl       easy_install-3.4  idle3.4    lzmadec    pip       python3   renice      sqlite3   tput               virtualenv  xsltproc
admin@DiskStation:/volume1/@appstore/python3/bin$ python3
-sh: python3: command not found

Что я сделал:

Я установил Python3 с помощью диспетчера пакетов Synology DSM, а затем подключился по SSH (используя PuTTY) к моей Synology, установил PATH и использовал PIP для установки Tweepy и других модулей.

Я считаю, что это было с некоторыми командами, такими как: (к сожалению, в основном копирование вставлено, не зная точно, что это означает в деталях...)

root@DiskStation:~# curl -k https://bootstrap.pypa.io/get-pip.py | python
  % Total % Received % Xferd Average Speed Time Time Time Current
  Dload Upload Total Spent Left Speed
100 1488k 100 1488k 0 0 1577k 0 --:--:-- --:--:-- --:--:-- 1577k
Collecting pip
  Using cached pip-8.1.2-py2.py3-none-any.whl
Collecting setuptools
  Downloading setuptools-23.1.0-py2.py3-none-any.whl (435kB)
  100% |████████████████████████████████| 440kB 551kB/s
Collecting wheel
  Using cached wheel-0.29.0-py2.py3-none-any.whl
Installing collected packages: pip, setuptools, wheel
Successfully installed pip-8.1.2 setuptools-23.1.0 wheel-0.29.0

Я был в состоянии запускать сценарии на основе этого и вполне счастлив. Пока я не получил некоторые ошибки (Unicode) и из журнала ошибок увидел, что это версия Python 2.7, которая работает на моей Synology. Кажется, что эти проблемы с Unicode решаются в Python3 (который у меня есть и на моем ПК), поэтому я хотел бы также иметь Python3 на Synology.

И версия 2.7 действительно установлена, если я подключаюсь по SSH и набираю Python, я получаю:

admin@DiskStation:~$ python
Python 2.7.11 (default, May 13 2016, 05:16:12)
[GCC 4.9.3 20150311 (prerelease)] on linux2
Type "help", "copyright", "credits" or "license" for more information.

Это странно, потому что я не вижу ни одного пакета Python 2.7 в Synology в диспетчере пакетов, поэтому я должен был установить 2.7 через какую-то команду SSH, которую я предназначал только для PIP.

У меня был установлен пакет Python3 по умолчанию в Synology, и если я наберу admin@DiskStation:~$ python3 Я получил Python3 готов к работе.

В /volume1/@appstore/py3k/ я вижу все виды версий Python и PIP, и python3 работает хорошо. Однако без каких-либо модулей и PIP3 не работает ("команда не найдена"), я попробовал его из всех возможных каталогов и во всех видах форматов, как предложено в аналогичных вопросах и ответах, например: pip3.4 install tweepy, pip3 install tweepy, etc.

Итак, теперь с помощью диспетчера пакетов DSM я деинсталлировал Python3 и установил SynoCommunity Python3 (как это предлагается на форуме Synology здесь), который показывает другую структуру каталогов. Но, кажется, еще хуже, потому что теперь я больше не вижу ссылок на Python 2.7 (но он все еще работает, поэтому должен быть там) и даже не может запустить python3:

admin@DiskStation:~$ cd /volume1
admin@DiskStation:/volume1$ cd @appstore
admin@DiskStation:/volume1/@appstore$ cd python3
admin@DiskStation:/volume1/@appstore/python3$ ls
bin  etc  include  install.log  lib  openssl.cnf  share
admin@DiskStation:/volume1/@appstore/python3$ cd bin
admin@DiskStation:/volume1/@appstore/python3/bin$ ls
2to3      bzcmp         bzless     deluser           idle3      lzmainfo  pydoc3      renice             tabs    unxz            xz
2to3-3.4  bzdiff        bzmore     dumpsexp          idle3.4    mpicalc   pydoc3.4    reset              tic     virtualenv      xzcat
addgroup  bzegrep       captoinfo  easy_install      infocmp    nice      python3     shuf               toe     virtualenv-3.4  xzdec
adduser   bzfgrep       clear      easy_install-3.4  infotocap  openssl   python3.4   speexdec           tput    wheel
bunzip2   bzgrep        c_rehash   fatattr           lzcat      pip       python3.4m  speexenc           tset    xmlcatalog
busybox   bzip2         curl       gpg-error         lzma       pip3      pyvenv      sqlite3            unlink  xmllint
bzcat     bzip2recover  delgroup   hmac256           lzmadec    pip3.4     pyvenv-3.4  start-stop-daemon  unlzma  xsltproc
admin@DiskStation:/volume1/@appstore/python3/bin$ python3
-sh: python3: command not found
admin@DiskStation:/volume1/@appstore/python3/bin$ python
Python 2.7.11 (default, May 13 2016, 05:16:12)
[GCC 4.9.3 20150311 (prerelease)] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>>

Так что я дошел до того, что попросил несколько советов, подсказок и советов.

4 ответа

Решение

Я не уверен, что вы можете полностью удалить Python 2, но вы можете установить Python 3 и вызывать его специально вместо Python 2.

Сначала убедитесь, что Python 3 установлен: войдите в Synology через веб-администрацию и в "Центре пакетов" убедитесь, что установлен Python 3. (Вы найдете его в разделе "Инструменты разработчика" в "Центре пакетов")

Далее, специально вызывать Python 3, просто вызывая python3

Вы также можете попробовать использовать команду locate в Synology, чтобы найти точное местоположение Python 2. Для этого введите следующее в Synology:

ipkg update
ipkg install mlocate

А вот руководство по использованию команды: http://www.thegeekstuff.com/2012/03/locate-command-examples/

Удачи!

Кроме того, если вам не повезет с переполнением стека, я перейду на форумы Synology за помощью: https://forum.synology.com/

  • (1) установить python2.7 и python3.5 из пакетов DSM
  • (2) логин ssh и sudo -i
  • (3) запустите python и запустите python3, если обе работы пойдут дальше.
  • (4) запустить pip -V должен вернуть pip 10.0.1, это для python2.7
  • (5) запустите pip3 -V return "команда не найдена", потому что путь неверный.
  • (6) try / volume1 / @ appstore / py3k / usr / local / bin / pip3 -V,
    если успех. идти дальше Теперь вы можете установить модуль для Python3,
    путь зависит от вашей системы, например, команда:
    / volume1 / @ appstore / py3k / usr / local / bin / pip3 установка numpy должна работать!
  • (7) для удобной, более короткой команды подходит для использования, поэтому перейдите к следующему шагу:
    sudo vi.profile, (или.bashrc для конкретного входа пользователя)
  • (8) добавить псевдоним в конце:
    псевдоним pip3 = '/ volume1 / @ appstore / py3k / usr / local / bin / pip3'
  • (9) исходный.profile или sudo перезагрузка
  • (10) тест pip3 -V, должен работать для python3.x
  • Хорошо, спасибо за ответы, я решил:

    1. Подтверждено, что Python 2.7.9 по умолчанию установлен в Synology DSM 5.2 (и не отображается в центре пакетов).

    2. Я смог добавить модули в Python3, специально вызвав установку модуля pip для Python3 с помощью этой команды:(спасибо этому Q & A)

      /volume1/@appstore/py3k/usr/local/lib/python3.5/site-packages/pip установить tweepy

    (установка модуля tweepy в этом случае)

    И к вашему сведению полный обзор команд:

    admin@DiskStation:/volume1/@appstore/py3k/usr/local/lib/python3.5/site-packages$ sudo -i
    Password:
    root@DiskStation:~# curl -O https://bootstrap.pypa.io/get-pip.py
      % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                     Dload  Upload   Total   Spent    Left  Speed
    100 1488k  100 1488k    0     0  1704k      0 --:--:-- --:--:-- --:--:-- 1703k
    root@DiskStation:~# sudo python3 get-pip.py
    Requirement already up-to-date: pip in /volume1/@appstore/py3k/usr/local/lib/python3.5/site-packages
    root@DiskStation:~# pip install tweepy
    Requirement already satisfied (use --upgrade to upgrade): tweepy in /usr/lib/python2.7/site-packages
    Requirement already satisfied (use --upgrade to upgrade): six>=1.7.3 in /usr/lib/python2.7/site-packages (from tweepy)
    Requirement already satisfied (use --upgrade to upgrade): requests>=2.4.3 in /usr/lib/python2.7/site-packages (from tweepy)
    Requirement already satisfied (use --upgrade to upgrade): requests-oauthlib>=0.4.1 in /usr/lib/python2.7/site-packages (from tweepy)
    Requirement already satisfied (use --upgrade to upgrade): oauthlib>=0.6.2 in /usr/lib/python2.7/site-packages (from requests-oauthlib>=0.4.1->tweepy)
    root@DiskStation:~# python3 ^C
    root@DiskStation:~# python3 /volume1/@appstore/py3k/usr/local/lib/python3.5/site-packages/pip install tweepy
    Collecting tweepy
      Using cached tweepy-3.5.0-py2.py3-none-any.whl
    Collecting requests-oauthlib>=0.4.1 (from tweepy)
      Using cached requests_oauthlib-0.6.1-py2.py3-none-any.whl
    Collecting requests>=2.4.3 (from tweepy)
      Using cached requests-2.10.0-py2.py3-none-any.whl
    Collecting six>=1.7.3 (from tweepy)
      Using cached six-1.10.0-py2.py3-none-any.whl
    Collecting oauthlib>=0.6.2 (from requests-oauthlib>=0.4.1->tweepy)
      Using cached oauthlib-1.1.2.tar.gz
    Building wheels for collected packages: oauthlib
      Running setup.py bdist_wheel for oauthlib ... done
      Stored in directory: /root/.cache/pip/wheels/e6/be/43/e4a2ca8cb9c78fbd9b5b14b96cb7a5cc43f36bc11af5dfac5b
    Successfully built oauthlib
    Installing collected packages: requests, oauthlib, requests-oauthlib, six, tweepy
    Successfully installed oauthlib-1.1.2 requests-2.10.0 requests-oauthlib-0.6.1 six-1.10.0 tweepy-3.5.0
    

    (И я снова удалил пакет SynoCommunity Python3 и теперь использую центр пакетов DSM версии Python3)

    Похоже, в DSM7 это немного изменилось с момента первоначального ответа. В DSM7 вы управляете Python в Web Station, а путь — /volume1/@appstore/Python3.9.

    Вы можете установить pip через ssh, при условии, что у вас есть root или sudo -i

    1. python3 -m ensurepip
    2. python3 -m pip install --upgrade pip
    3. python3 -m pip -V(чтобы проверить версию и подтвердить)
    4. python3 -m pip install requests(или любой другой модуль)
    Другие вопросы по тегам