Synology 的 Python,如何安装 Python3 模块以及 Python2.7 安装在哪里?

新手上路,请多包涵

你能告诉我如何在我的 Synology(DS214play,DSM 6.0.1-7393 更新 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

  1. 所以为了让 PIP3 工作,我需要了解 Python2.7 的安装位置,甚至可能如何删除它(如果有必要)。

  2. 最好知道哪个 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 包,所以我一定是通过一些 SSH 命令安装了 2.7,我只打算用于 PIP。

我在 Synology 安装了默认的 Python3 包,如果我输入 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.
>>>

所以我到了要求一些技巧、提示和建议的地步。

原文由 Wouter 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 1k
2 个回答

我不确定您是否可以完全删除 Python 2,但您可以安装 Python 3 并专门调用它而不是 Python 2。

首先,确保已安装 Python 3:通过 Web 管理登录 Synology,并在“套件中心”中确保已安装“Python 3”。 (您可以在“套件中心”的“开发者工具”下找到它)

接下来,通过简单地调用 python3 具体唤起 Python 3

您也可以尝试在 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

原文由 Jaxian 发布,翻译遵循 CC BY-SA 3.0 许可协议

(1) 从DSM包 安装python2.7和python3.5 (2)ssh登录 & sudo -i (3) 运行 python 并运行 python3,如果两者都正常则下一步。 (4)运行pip -V应该返回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)测试 pip3 -V ,应该适用于 python3.x

原文由 allen yang 发布,翻译遵循 CC BY-SA 4.0 许可协议

推荐问题