Bagaimana saya bisa menginstal python-dev tanpa sudo?

2

Saya mencoba menginstal paket python (scikits.learn) pada direktori pengguna saya (pada server ubuntu yang saya tidak punya izin sudo) tetapi saya mendapatkan

error: Python.h: No such file or directory

Mungkin karena saya tidak menginstal python-dev. Tetapi bagaimana saya bisa menginstal python-dev tanpa sudo? ATAU adakah jalan keluar lain yang mudah untuk Python.h?

d.putto
sumber
1
1) Apa distro Linux? 2) Pertanyaannya adalah tidak tepat pada topik di sini, mungkin akan bermigrasi ke tempat lain. 3) Lihat pertanyaan ini untuk beberapa ide.
Lev Levitsky
1. di server ubuntu

Jawaban:

1

Saya tahu bahwa ini adalah sedikit necromancy (menghidupkan kembali posting lama) tapi saya menghadapi masalah yang sama dan tidak dapat menemukan jawaban, jadi saya membagikan yang saya temukan ...

Solusi saya:

Saya bekerja pada Desktop ubuntu 16.04, tanpa sudo dan hanya python 2.7 yang diinstal. Saya berhasil menyiapkan virtualevn tanpa sudo (mengikuti https://stackoverflow.com/questions/9348869/how-to-install-virtualenv-without-using-sudo ) dan ketika mencoba menginstal jupyter saya menemukan kesalahan yang hilang ": Python.h: Tidak ada file atau direktori ".

Solusi saya, sama sekali tidak bersih tetapi setidaknya terbatas pada virtualenv dan folder python virtual adalah:

  1. buat direktori pengujian (package_download)
  2. no-sudo @ pc: ~ / package_download $ apt-get unduh libpython2.7-dev
  3. no-sudo @ pc: ~ / package_download $ apt-get unduh 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 -x python-dev_2.7.11-1_amd64.deb.

Ini akan mengunduh perpustakaan dan mengekstraknya di folder package_download Anda. Sekarang sampai pada bagian yang kotor, karena pip tidak mengizinkan saya untuk menargetkan lokasi ini, saya menambahkan file ini ke tempat mereka berada, di dalam folder virtualenv ...

  1. Gabungkan "~ / package_download / usr / bin" dengan direktori bin di dalam folder instalasi python virtual Anda (yang Anda gunakan untuk menginstal virtualenv dan membuat lingkungan Anda) tetapi jangan mengganti file apa pun.
  2. Gabungkan "~ / package_download / usr / lib" dengan direktori lib di dalam folder python virtual Anda . Tidak ada konflik di sini.
  3. Salin konten "~ / package_download / usr / include / python2.7" ke folder include / python2.7 / Anda, tidak ada konflik di sini. Ini sebenarnya bagian yang paling kotor, karena kita memodifikasi folder instal python virtual (ini tidak perlu sudo, karena ini adalah virtual python no-sudo ).
  4. Salin folder "~ / package_download / usr / include / x86_64-linux-gnu" ke folder include / python2.7 / Anda. Menyalin folder tidak ada masalah di sini ...

sekarang jalankan env virtual Anda:

  1. no-sudo @ pc: ~ / running_virtualenv $ source bin / aktifkan
  2. (running_virtualenv) no-sudo @ pc: ~ / running_virtualenv $ pip install jupyter
  3. Nikmati...

Jika Anda menemukan bahwa include / python2.7 / Anda adalah tautan simbolis maka Anda telah salah mengira folder virtualenv dengan folder python virtual. (Terima kasih @ andrzej1_1 untuk menemukan masalah ini)

Ramiro RC
sumber
Apakah ini jawaban atau pertanyaan? Jika ada pertanyaan, buat pertanyaan baru (dan jelaskan mengapa ini tidak membantu).
xenoid
Maaf, bagian pertama membingungkan, itu adalah jawaban. Saya akan menambahkan klarifikasi.
Ramiro RC
Solusi Anda tidak bekerja untuk saya. Dalam kasus saya ~/virt_env/include/python2.7menunjuk ke /usr/lib/python2.7, yang tidak dapat dimodifikasi oleh pengguna non-root.
andrzej1_1
@ andrzej1_1, saya tidak yakin mengapa begitu, mungkin Anda menginstal virtualenv tanpa tanda "--no-site-paket"? Bagaimanapun, Anda dapat mencoba mengganti tautan simbolis itu dengan folder. Milik saya hanya berisi 3 tautan simbolis di dalamnya termasuk / python2.7: "Imaging.h -> /usr/include/python2.7/Imaging.h", "ImDib.h -> /usr/include/python2.7/ImDib. h "dan" ImPlatform.h -> /usr/include/python2.7/ImPlatform.h ".
Ramiro RC
1
@ andrzej1_1 Saya menemukan kesalahan dalam kode saya, saya bingung beberapa folder di sistem saya, lebih spesifik, saya bingung folder virtual_env dengan folder virtual_python. Saya telah menginstal virtualenv melalui skrip virtual_python (lihat posting ini stackoverflow.com/questions/9348869/… ). Saya akan mengedit jawabannya dan menambahkan baris untuk menginstal python virtual.
Ramiro RC