web-dev-qa-db-ja.com

sudoなしでpython-devをインストールするにはどうすればよいですか?

pythonパッケージ(scikits.learn)をユーザーディレクトリ(Sudo権限のないubuntuサーバー上)にインストールしようとしていますが、取得しています

error: Python.h: No such file or directory

Python-devがインストールされていないことが原因である可能性があります。しかし、どうすればsudoなしでpython-devをインストールできますか? OR Python.hの他の簡単な方法はありますか?

5
d.putto

ソースから独自のpythonをコンパイルしてから、必要なモジュールをインストールできます。 http://docs.python.org/devguide/

3
Denis

これは少しの降霊術(古い投稿を復活させる)であることを知っていますが、同じ問題に直面し、答えを見つけることができなかったので、見つけたものを共有しています...

私の解決策:

私はubuntu16.04デスクトップで作業しており、Sudoはなく、python 2.7のみがインストールされています。Sudoなしでvirtualevnをセットアップできました(以下 https://stackoverflow.com/questions)/9348869/how-to-install-virtualenv-without-using-Sudo )そしてjupyterをインストールしようとすると、「エラー:Python.h:そのようなファイルまたはディレクトリがありません」という欠落に遭遇しました。

私の解決策は、まったくクリーンではありませんが、少なくともvirtualenvとvirtual python folderに限定されています:

  1. テストディレクトリを作成します(package_download)
  2. no-Sudo @ pc:〜/ package_download $ apt-get download libpython2.7-dev
  3. no-Sudo @ pc:〜/ package_download $ apt-get download python-dev
  4. no-Sudo @ pc:〜/ package_download $ dpkg -x libpython2.7-dev_2.7.12-1ubuntu0〜16.04.1_AMD64.deb。
  5. no-Sudo @ pc:〜/ package_download $ dpkg -xpython-dev_2.7.11-1_AMD64.deb。

これにより、ライブラリがダウンロードされ、package_downloadフォルダーに抽出されます。汚い部分が来ました。pipではこの場所をターゲットにできなかったので、virtualenvフォルダー内のそれらが属する場所にこのファイルを追加しました...

  1. 「〜/ package_download/usr/bin」をvirtual pythonインストールフォルダ(virtualenvのインストールと作成に使用したもの)内のbinディレクトリにマージします環境)が、ファイルを置き換えないでください。
  2. 「〜/ package_download/usr/lib」を仮想pythonフォルダ内のlibディレクトリにマージします。ここでは競合はありません。
  3. 「〜/ package_download/usr/include /python2.7」の内容をinclude/python2.7 /フォルダーにコピーします。ここで競合は発生しません。 仮想pythonのインストールフォルダーを変更しているため、これは実際には最も汚い部分です(これは、Sudoがないため、Sudoは必要ありません) 仮想python)。
  4. フォルダ「〜/ package_download/usr/include/x86_64-linux-gnu」をinclude/python2.7 /フォルダにコピーします。ここでフォルダをコピーしても問題ありません...

次に、仮想環境を実行します。

  1. いいえ-Sudo @ pc:〜/ running_virtualenv $ source bin/activate
  2. (running_virtualenv)no-Sudo @ pc:〜/ running_virtualenv $ pip install jupyter
  3. 楽しい...

include/python2.7 /がシンボリックリンクであることがわかった場合は、virtualenvフォルダーを仮想pythonフォルダ。(この問題を見つけてくれてありがとう@ andrzej1_1)

1
Ramiro R.C.