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

2024-05-19 14:14:29 发布

您现在位置:Python中文网/ 问答频道 /正文

你能告诉我如何得到Python3和运行在我的概要模块(DS214play,与DSM 6.0.1-7393更新1)? 我想要的是:在Python3中运行Tweepy和其他模块来了解我的滑膜。

我被困的地方:

  1. 如何让PIP3安装Tweepy,如果我尝试得到:Requirement already up-to-date: pip in /usr/lib/python2.7/site-packages

    显然我已经安装了Python2.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包(Synology DSM包管理器或SynoCommunity Python3包的默认设置)

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

但是我没有看到Python2.7的任何包(我相信它一定在那里),而且我在连接SSH时找不到任何Python2.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并设置路径,并使用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)错误,并且从错误日志中看到它是在我的概要上运行的Python的2.7版本。这些Unicode问题似乎在Python3中得到了解决(我在我的PC上也有),所以我也希望Python3也能在Synology上得到解决。

如果我使用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包,所以我必须通过一些SSH命令安装了2.7,这是我为PIP准备的。

我在Synology安装了默认的Python3包,如果我键入admin@DiskStation:~$ python3 我已经把Python3准备好了。

在/volume1/@appstore/py3k/I中,我看到了各种Python和PIP版本,python3工作得很好。但是没有任何模块,PIP3也无法工作(“找不到命令”),我从所有可能的目录中尝试了它,并使用了类似Q&;上建议的所有格式,例如pip3.4 install tweepy, pip3 install tweepy, etc.

因此,现在使用DSM包管理器,我已经卸载了Python3并安装了SynoCommunity Python3(如Synology forum here中所建议的),它显示了不同的目录结构。但看起来更糟,因为现在我再也看不到对Python2.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.
>>>

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


Tags: installpip管理器binincludeadminlibpython3
3条回答

  • (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有效
  • 好的,很多回复,我用以下方法解决了它:

    1. 已确认在Synology DSM 5.2中默认安装了Python2.7.9(在包中心不可见)。

    2. 我可以通过使用以下命令专门调用Python3的pip模块安装来向Python3添加模块:(thx to this Q&A

      /volume1/@appstore/py3k/usr/local/lib/python3.5/site-packages/pip安装路径

    (在这种情况下安装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 package center Python3版本)

    我不确定您是否可以完全删除Python2,但是您可以安装Python3并特别调用它,而不是Python2。

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

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

    您还可以尝试使用概要中的locate命令来找到Python 2的确切位置。要执行此操作,请在您的概要中输入以下内容:

    ipkg update
    ipkg install mlocate
    

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

    祝你好运!

    还有, 如果你在堆栈溢出问题上运气不好,我也会跑到概要论坛寻求帮助:https://forum.synology.com

    相关问题 更多 >