web-dev-qa-db-ja.com

DSM / Synologyへのpipのインストール

python 3を使用してこの数か月間プログラムを作成してきました。しばらくテストしてきましたが、問題なく動作するようです。そのため、 DSM/Synology(モデル:DS209 +、バージョン:DSM 4.2-3259)で稼働させるには、この環境について何も知らないので、Synologyパッケージからpython3(3.3.2-0005)をインストールしましたセンターとそれが動作しました。コードの実行は機能します。唯一の問題は、プログラムが「リクエスト」ライブラリを使用することです。しかし、pipを実行できません。pipをインストールするには、PuTTYで次の行を使用してみました。

curl -k https://bootstrap.pypa.io/get-pip.py | python3

私はpipがダウンロード/インストールし、それを使用してリクエストライブラリを取得することを期待しています。しかし、これが発生し、私は何が間違っていたかわかりません:

The directory '/var/services/homes/admin/.cache/pip/http' or its parent directory is not owned by the current user and the cache has been disabled. Please check the permissions and owner of that directory. If executing pip with Sudo, you may want Sudo's -H flag.
The directory '/var/services/homes/admin/.cache/pip' or its parent directory is not owned by the current user and caching wheels has been disabled. check the permissions and owner of that directory. If executing pip with Sudo, you may want Sudo's -H flag.
Collecting pip
  Downloading pip-9.0.1-py2.py3-none-any.whl (1.3MB)
    100% |################################| 1.3MB 131kB/s
Collecting setuptools
  Downloading setuptools-38.2.4-py2.py3-none-any.whl (489kB)
    100% |################################| 491kB 305kB/s
Collecting wheel
  Downloading wheel-0.30.0-py2.py3-none-any.whl (49kB)
    100% |################################| 51kB 296kB/s
Installing collected packages: pip, setuptools, wheel
Exception:
Traceback (most recent call last):
  File "/usr/local/lib/python3.3/distutils/sysconfig.py", line 449, in _init_posix
    with open(filename) as file:
FileNotFoundError: [Errno 2] No such file or directory: '/usr/local/include/python3.3m/pyconfig.h'

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "/tmp/tmpdqp31o/pip.Zip/pip/basecommand.py", line 215, in main
    status = self.run(options, args)
  File "/tmp/tmpdqp31o/pip.Zip/pip/commands/install.py", line 342, in run
    prefix=options.prefix_path,
  File "/tmp/tmpdqp31o/pip.Zip/pip/req/req_set.py", line 784, in install
    **kwargs
  File "/tmp/tmpdqp31o/pip.Zip/pip/req/req_install.py", line 851, in install
    self.move_wheel_files(self.source_dir, root=root, prefix=prefix)
  File "/tmp/tmpdqp31o/pip.Zip/pip/req/req_install.py", line 1064, in move_wheel_files
    isolated=self.isolated,
  File "/tmp/tmpdqp31o/pip.Zip/pip/wheel.py", line 247, in move_wheel_files
    prefix=prefix,
  File "/tmp/tmpdqp31o/pip.Zip/pip/locations.py", line 153, in distutils_scheme
    i.finalize_options()
  File "/usr/local/lib/python3.3/distutils/command/install.py", line 313, in finalize_options
    (prefix, exec_prefix) = get_config_vars('prefix', 'exec_prefix')
  File "/usr/local/lib/python3.3/distutils/sysconfig.py", line 531, in get_config_vars
    func()
  File "/usr/local/lib/python3.3/distutils/sysconfig.py", line 456, in _init_posix
    raise DistutilsPlatformError(my_msg)
distutils.errors.DistutilsPlatformError: invalid Python installation: unable to open /usr/local/include/python3.3m/pyconfig.h (No such file or directory)

Sudo -Hを使用すると問題が解決するようです。しかし、それをどのようにしてどこから始めればよいのか、私にはわかりません。問題をグーグルで調べてもあまり役に立たなかったのは、私が見つけたものが漠然として理解できないか、pipが既にインストールされているためこの問題が発生したためです。この質問も漠然としていないことを願っています。

6
user8357325

新しいvenv pipを使用すると、自動的に使用可能になります。例えば:

user@Host:~$ python3 -m venv env
user@Host:~$ . env/bin/activate
(env) user@Host:~$ pip --version
pip 7.1.2 from /volume1/homes/user/env/lib/python3.5/site-packages (python 3.5)

その後、pipを現在のバージョンにアップグレードできます。

user@Host:~$ pip install --upgrade pip
...
Successfully installed pip-18.0

これには、pipを使用してパッケージをインストールしてもシステムのpythonが壊れないという利点もあります。

環境を自動的にアクティブ化するには、.profile

user@Host:~$ touch ~/.profile
user@Host:~$ chmod u=rwx ~/.profile

そして、その内容を次のようにします。

#!/bin/sh
. env/bin/activate
14
roskakori

すでに述べた@hoeflingのように、これは特権の問題です。

SSH経由でログイン

ssh user@synology

ユーザーのパスワードを入力します。

管理者権限を取得

Sudo su

sudoパスワードを入力します。

インストールファイルを取得する

wget https://bootstrap.pypa.io/get-pip.py

そしてインストールファイルを実行します。

python get-pip.py

うまくいったかどうか教えてください。

10
anonjnr

SSH/Telnet経由でroot権限でDSMにログイン

  • adminアカウントを使用してSynologyデバイスにSSH接続します:ssh [email protected]
  • Sudo -iを実行して、rootに切り替えます。

rootとして正常にログインすると、pipのインストールに必要な権限が付与されます。

root@x:~# curl -k https://bootstrap.pypa.io/get-pip.py | python3
  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
100 1558k  100 1558k    0     0  1076k      0  0:00:01  0:00:01 --:--:-- 1076k
Collecting pip
  Downloading pip-9.0.1-py2.py3-none-any.whl (1.3MB)
    100% |████████████████████████████████| 1.3MB 506kB/s
Collecting setuptools
  Downloading setuptools-38.4.0-py2.py3-none-any.whl (489kB)
    100% |████████████████████████████████| 491kB 1.1MB/s
Collecting wheel
  Using cached wheel-0.30.0-py2.py3-none-any.whl
Installing collected packages: pip, setuptools, wheel
Successfully installed pip-9.0.1 setuptools-38.4.0 wheel-0.30.0
3
Mati

私はこの方法に従ってpipをインストールしました:

wget https://bootstrap.pypa.io/get-pip.py
python get-pip.py

ただし、一部のライブラリはSynologyの最新バージョンのPythonが3.5になったため、インストールできません。これがすべての人に役立つ場合は、easy.installで見つかったパッケージ@appstore/py3k/usr/local/bin pipパッケージをインストールします。それらの一部(テレポットなど)は、いくつかのaiohttpの問題のためにpipでインストールされません。

0
Angel