Python 在 Synology,如何安装 Python3 模块以及 Python2.7 安装在哪里?
Python at Synology, how to get Python3 modules installed and where is Python2.7 installed?
你能告诉我如何在我的 Synology(DS214play,DSM 6.0.1-7393 更新 1)上获得 Python3 模块 运行ning 吗?
我想要的:运行 Tweepy 和我 Synology 上 Python3 中的其他模块。
我卡在哪里:
如何让 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 套件最适合使用(默认来自 Synology DSM 套件管理器或 SynoCommunity Python3 套件)
因为当通过 SSH(使用 PuTTY)连接到我的 Synology 时,我可以在 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。
并且确实安装了 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.
这很奇怪,因为我在 Synology 的包管理器中没有看到任何 Python 2.7 包,所以我一定是通过一些专用于 PIP 的 SSH 命令安装了 2.7。
我在 Synology 安装了默认的 Python3 软件包,如果我输入 admin@DiskStation:~$ python3
我确实准备好 python3 了。
在 /volume1/@appstore/py3k/ 中,我看到了各种 Python 和 PIP 版本,python3 效果很好。但是,如果没有任何模块,PIP3 也不起作用("command not found"),我从所有可能的目录和各种格式中尝试了它,如类似问答中所建议的那样,例如pip3.4 install tweepy, pip3 install tweepy, etc.
现在使用 DSM 包管理器,我卸载了 Python3 并安装了 SynoCommunity Python3(如 Synology forum here 上的建议),它显示了不同的目录结构。但似乎更糟,因为现在我再也看不到对 Python 2.7 的引用(但它仍然 运行s 所以必须存在)甚至无法启动 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 3 并专门调用它而不是 Python 2。
首先,确保 Python 3 已安装:
通过 Web 管理登录到您的 Synology,并在 'Package Center' 中确保安装了 'Python 3'。 (您会在 'Package Center' 中的 'Developer Tools' 下找到它)
接下来,具体唤起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
好的,非常感谢您的回复,我解决了这个问题:
已确认 Python 2.7.9 默认安装在 Synology DSM 5.2 中(并且在套件中心不可见)。
我能够通过使用此命令专门为 Python3 调用 pip 模块安装来向 Python3 添加模块:(thx to this 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 版本)
(1)安装 python2.7 和 python3.5 来自 DSM 软件包
(2)ssh 登录 & sudo -i
(3)运行 python 和 运行 python3,如果下一步都进行。
(4)运行 pip -V 应该 return pip 10.0.1,它是为了 python2.7
(5)运行 pip3 -V return "command not found",..因为路径不对。
(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 reboot
(10)test pip3 -V,应该适用于 python3.x
你能告诉我如何在我的 Synology(DS214play,DSM 6.0.1-7393 更新 1)上获得 Python3 模块 运行ning 吗? 我想要的:运行 Tweepy 和我 Synology 上 Python3 中的其他模块。
我卡在哪里:
如何让 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 套件最适合使用(默认来自 Synology DSM 套件管理器或 SynoCommunity Python3 套件)
因为当通过 SSH(使用 PuTTY)连接到我的 Synology 时,我可以在 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。
并且确实安装了 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.
这很奇怪,因为我在 Synology 的包管理器中没有看到任何 Python 2.7 包,所以我一定是通过一些专用于 PIP 的 SSH 命令安装了 2.7。
我在 Synology 安装了默认的 Python3 软件包,如果我输入 admin@DiskStation:~$ python3
我确实准备好 python3 了。
在 /volume1/@appstore/py3k/ 中,我看到了各种 Python 和 PIP 版本,python3 效果很好。但是,如果没有任何模块,PIP3 也不起作用("command not found"),我从所有可能的目录和各种格式中尝试了它,如类似问答中所建议的那样,例如pip3.4 install tweepy, pip3 install tweepy, etc.
现在使用 DSM 包管理器,我卸载了 Python3 并安装了 SynoCommunity Python3(如 Synology forum here 上的建议),它显示了不同的目录结构。但似乎更糟,因为现在我再也看不到对 Python 2.7 的引用(但它仍然 运行s 所以必须存在)甚至无法启动 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 3 并专门调用它而不是 Python 2。
首先,确保 Python 3 已安装: 通过 Web 管理登录到您的 Synology,并在 'Package Center' 中确保安装了 'Python 3'。 (您会在 'Package Center' 中的 'Developer Tools' 下找到它)
接下来,具体唤起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
好的,非常感谢您的回复,我解决了这个问题:
已确认 Python 2.7.9 默认安装在 Synology DSM 5.2 中(并且在套件中心不可见)。
我能够通过使用此命令专门为 Python3 调用 pip 模块安装来向 Python3 添加模块:(thx to this 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 版本)
如果成功。下一步。现在您可以为 python3、
安装模块 不同的路径取决于您的系统,例如命令:
/volume1/@appstore/py3k/usr/local/bin/pip3 install numpy 应该可以!
sudo vi .profile,(或特定用户登录的 .bashrc)
别名 pip3='/volume1/@appstore/py3k/usr/local/bin/pip3'