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

Wou*_*ter 5 python linux pip tweepy synology

你能告诉我如何在我的 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
    
    Run Code Online (Sandbox Code Playgroud)
  2. 所以为了让 PIP3 工作,我需要了解 Python2.7 的安装位置,甚至可能如何删除它(如果有必要)。

  3. 最好知道哪个 Python3 软件包最适合使用(默认来自 Synology DSM 软件包管理器或 SynoCommunity Python3 pacakge)

因为当通过 SSH(使用 PuTTY)连接到我的 Synology 时,我可以在 DSM 包管理器和相关文件夹中看到 Python3。

但是我没有看到任何 Python2.7 包(我相信它必须在那里),并且在与 SSH 连接时我找不到任何 Python 2.7 文件夹,即使很艰难我暗示必须有一个“/usr/lib/python2.7”。 7/site-packages " 某处的文件夹...

-> Synology DSM 软件包管理器的默认 Python3 位于 py3k 文件夹中:

admin@DiskStation: /volume1/@appstore/py3k/usr/local/bin$
python3
Run Code Online (Sandbox Code Playgroud)

-> 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
Run Code Online (Sandbox Code Playgroud)

我做了什么:

我使用 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
Run Code Online (Sandbox Code Playgroud)

我能够基于此运行脚本并且非常高兴。直到我收到一些 (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.
Run Code Online (Sandbox Code Playgroud)

这很奇怪,因为我在包管理器中没有看到 Synology 的任何 Python 2.7 包,所以我必须通过一些我打算只用于 PIP 的 SSH 命令安装了 2.7。

我在 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.
>>>
Run Code Online (Sandbox Code Playgroud)

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

all*_*ang 7

  • (1)从DSM包安装python2.7和python3.5
  • (2)ssh 登录 & sudo -i
  • (3)运行python并运行python3,如果两者都工作,则下一步。
  • (4)run pip -V 应该返回pip 10.0.1,它是针对python2.7的
  • (5)run 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)在最后添加别名:
             alias pip3='/volume1/@appstore/py3k/usr/local/bin/pip3'
  • (9)source .profile 或 sudo reboot
  • (10)test pip3 -V,应该适用于 python3.x

    Jax*_*ian 1

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

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

    接下来,通过简单地调用来专门调用 Python 3python3

    您还可以尝试在 Synology 上使用locate 命令来查找 Python 2 的确切位置。为此,请在 Synology 上输入以下命令:

    ipkg update
    ipkg install mlocate
    
    Run Code Online (Sandbox Code Playgroud)

    这是有关如何使用该命令的教程:http://www.thegeekstuff.com/2012/03/locate-command-examples/

    祝你好运!

    另外,如果您在 Stack Overflow 上没有运气,我也会跑到 Synology 论坛寻求帮助: https: //forum.synology.com


    归档时间:

    查看次数:

    32223 次

    最近记录:

    7 年,4 月 前