web-dev-qa-db-ja.com

Python Synologyで、Python3モジュールをインストールする方法とPython2.7はどこにインストールされますか?

Synology(DS214play、DSM 6.0.1-7393 Update 1)で実行されているモジュールでPython3を取得する方法を教えてください。私が欲しいもの:SynologyのPython3でTweepyと他のモジュールを実行します。

私が立ち往生している場所:

  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パッケージを使用するのが最適かを知っておくとよいでしょう(SynologyDSMパッケージマネージャーまたはSynoCommunityPython3パッケージのデフォルト)

SynologyにSSH(PuTTYを使用)で接続すると、DSMパッケージマネージャーと関連フォルダーにPython3が表示されるためです。

しかし、Python2.7のパッケージ(そこにあるはずだと思います)が表示されず、SSHに接続したときにPython 2.7フォルダーが見つからない場合でも、存在する必要があるというヒントがあります。どこかにある「/usr/lib/python2.7/site-packages」フォルダ...

-> Synology DSMパッケージマネージャーのデフォルトのPython3は、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

私がしたこと:

Synology DSMパッケージマネージャーを使用してPython3をインストールし、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)エラーが発生し、エラーログから、Synologyで実行されるPythonの2.7バージョンであることがわかるまで。これらのUnicodeの問題はPython3で解決されているようです(私が持っている私のPCでも)なので、SynologyでもPython3を使用したいと思います。

そして、SSHで接続してPythonと入力すると、2.7バージョンが実際にインストールされます。

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.

パッケージマネージャーのSynologyにPython 2.7パッケージが表示されないため、これは奇妙です。したがって、PIP専用のSSHコマンドを使用して2.7をインストールしたに違いありません。

SynologyにデフォルトのPython3パッケージがインストールされていて、admin@DiskStation:~$ python3と入力すると、python3を使用できるようになりました。

/ volume1/@ appstore/py3k /内には、あらゆる種類のPythonおよびPIPバージョンとpython3が正常に機能します。ただし、モジュールがないとPIP3は機能しません(「コマンドが見つかりません」) )、同様のQ&Aで提案されているように、すべての可能なディレクトリから、あらゆる種類の形式で試してみました。例: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
Wouter

Python 2を完全に削除できるかどうかはわかりませんが、Python 2の代わりに、Python3をインストールして具体的に呼び出すことができます。

まず、Python 3がインストールされていることを確認します。Web管理を介してSynologyにログインし、「パッケージセンター」で「Python3」がインストールされていることを確認します。 (「パッケージセンター」内の「開発者ツール」の下にあります)

次に、python3を呼び出すだけで、具体的にPython3を呼び出します。

Synologyでlocateコマンドを使用して、Python 2の正確な場所を見つけることもできます。これを行うには、Synologyで次のように入力します。

ipkg update
ipkg install mlocate

コマンドの使用方法に関するチュートリアルは次のとおりです。 http://www.thegeekstuff.com/2012/03/locate-command-examples/

幸運を!

また、Stack Overflowに運がない場合は、Synologyフォーラムにアクセスしてヘルプを求めます: https://forum.synology.com

0
Jaxian

わかりました、返信のための多くのthx、私はそれを解決しました:

  1. Python 2.7.9がSynologyDSM 5.2にデフォルトでインストールされていることを確認しました(パッケージセンターには表示されません)。

  2. このコマンドを使用してPython3のpipモジュールのインストールを具体的に呼び出すことで、Python3にモジュールを追加することができました:(thx to this Q&A

    /volume1/@appstore/py3k/usr/local/lib/python3.5/site-packages/pip install 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バージョンを使用します)

2
Wouter
  • (1)python2.7とpython3.5をインストールしますDSMパッケージから
  • (2)sshログイン&Sudo -i
  • (3)実行pythonそして、両方の作業が次に進む場合は、python3を実行します。
  • (4)run pip-Vはpip10.0.1を返すはずです。これはpython2.7用です。
  • (5)パスが正しくないため、pip3 -V return "command notfound"を実行します。
    • (6)試してください/ volume1/@ appstore/py3k/usr/local/bin/pip3 -V
      成功した場合。次に行きます。これで、python3のモジュールをインストールできます。
      異なるパスはシステムによって異なります。たとえば、次のコマンドを使用します。
      / volume1/@ appstore/py3k/usr/local/bin/pip3 install numpy動作するはずです!
    • (7)便利な短いコマンドを使用するとよいので、次の手順に進みます。
      Sudo vi .profile、(または特定のユーザーログインの場合は.bashrc)
    • (8)最後にエイリアスを追加します:
      エイリアスpip3 = '/ volume1/@ appstore/py3k/usr/local/bin/pip3'
    • (9)source.profileまたはSudo再起動
    • (10)test pip3 -V、python3.xで動作するはずです
  • 1
    allen yang