Synology(DS214play、DSM 6.0.1-7393 Update 1)で実行されているモジュールでPython3を取得する方法を教えてください。私が欲しいもの:SynologyのPython3でTweepyと他のモジュールを実行します。
私が立ち往生している場所:
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
したがって、PIP3を機能させるには、Python2.7がインストールされている場所と、おそらくそれを削除する方法(必要な場合)を理解する必要があります。
そして、どの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.
>>>
それで、私はいくつかのヒント、ヒント、アドバイスを求めるようになりました。
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
わかりました、返信のための多くのthx、私はそれを解決しました:
Python 2.7.9がSynologyDSM 5.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バージョンを使用します)