Bagaimana cara menginstal modul pypi secara manual tanpa pip / easy_install?

91

Saya ingin menggunakan modul gntp untuk menampilkan notifikasi seperti pemanggang roti untuk perangkat lunak C / C ++. Saya ingin mengemas semua dependensi untuk perangkat lunak agar dapat dijalankan sendiri di komputer lain.

Modul gntp hanya tersedia melalui penginstal pip, yang tidak dapat digunakan (Komputer yang menjalankan perangkat lunak tidak memiliki koneksi internet): bagaimana cara menginstalnya dari sumber?

Saya lebih suka untuk tidak memaksa pengguna menginstal easy_install / pip dan secara manual menambahkan jalur pip ke% PATH.

PS: Saya menggunakan Python 2.7 di mesin Windows.

lucasg
sumber
4
Mungkin dengan python setup.py install?
Nicolas

Jawaban:

149
  1. Unduh paketnya
  2. buka zip jika sudah di-zip
  3. cd ke direktori yang berisi setup.py
  4. Jika ada instruksi penginstalan yang terkandung dalam dokumentasi yang terkandung di sini, baca dan ikuti instruksi DENGAN KATA LAIN
  5. ketik python setup.py install

Anda mungkin memerlukan hak administrator untuk langkah 5. Apa yang Anda lakukan di sini tergantung pada sistem operasi Anda. Misalnya di Ubuntu Anda akan berkatasudo python setup.py install

EDIT - terima kasih kepada kwatford (lihat komentar pertama)

Untuk mengabaikan kebutuhan akan hak administrator selama langkah 5 di atas, Anda mungkin dapat menggunakan tanda --user. Dengan cara ini Anda dapat menginstal paket hanya untuk pengguna saat ini.

Dokumen tersebut mengatakan:

File akan diinstal ke subdirektori site.USER_BASE (selanjutnya ditulis sebagai userbase). Skema ini menginstal modul Python murni dan modul ekstensi di lokasi yang sama (juga dikenal sebagai site.USER_SITE). Berikut adalah nilai untuk UNIX, termasuk Mac OS X:

Detail selengkapnya dapat ditemukan di sini: http://docs.python.org/2.7/install/index.html

Sheena
sumber
8
pip / easy_install / setup.py biasanya menerima --usertanda untuk menginstal paket hanya untuk pengguna saat ini, biasanya mengabaikan kebutuhan akses admin.
kwatford
3
Untuk beberapa alasan saya melihat ini: ImportError: No module named 'setuptools'Saya menemukannya di sini: pypi.python.org/pypi/setuptools/1.1.6 Meskipun penginstalan memberi saya kesalahan pengecualian, sekarang modul websocket tidak berfungsi sama sekali, saya pikir saya akan memberikan pada Python 3.3 pada Windows saat ini.
SSH
2
@SSHThis: Saya memiliki hasil yang sama dengan paket yang instalasinya saya coba untuk bekerja. Menaikkan verbositas memberikan "Karena distribusi ini telah diinstal --multi-version [...]" yang keduanya salah (hanya satu versi python yang diinstal di sini) dan tidak membantu (menggunakan dokumen "python -m easy_install [...] "sama sekali tidak membantu), saya bersamamu - Python tidak dapat digunakan.
Eric Towers
1
Saya kira pip install target-packagebiasanya secara otomatis menginstal / memperbarui paket lain di mana paket target bergantung. Apakah ini terjadi dalam kasus pendekatan setup.py? Atau apakah zip paket berisi semua dependensi juga? Dan maksud Anda kita harus mengunduh roda python alih-alih ritsleting? Seperti ini untuk numpy? Jika tidak di mana menemukan ritsleting (misalnya untuk numpy)? (Saya menanyakan semua ini karena saya terpaksa bekerja di belakang proxy perusahaan di mana saya harus berjuang untuk setiap unduhan: '()
Mahesha999
3
Anda tidak dapat benar-benar mengunduh paket saat offline ... Jika Anda ingin mengunduhnya saat berada di luar jaringan kerja konyol Anda, maka saya mungkin akan melakukan hal berikut: 1. membuat virtualenv. 2. python setup.py installatau pip installsemua hal yang Anda perlukan. 3. jalankan pip freeze untuk mendapatkan daftar semua paket dan versi. Anda dapat menyimpan ini dalam sebuah file (secara tradisional disebut persyaratan.txt '. Kemudian jika Anda ingin mengunduh paket sehingga Anda dapat menyalinnya ke mesin lain yang dapat Anda gunakan pip download [options] -r <requirements file>. Ini bukan cara yang paling efisien. Tetapi mudah
Sheena
5

Untuk menjelaskan lebih lanjut jawaban Sheena , saya perlu menginstal alat-alat sebagai ketergantungan alat lain misalnya more-itertools .

Unduh

Klik Clone or downloadtombol dan pilih metode Anda. Saya menempatkan ini ke dalam dev/py/libsdirektori di direktori home pengguna saya. Tidak masalah di mana mereka disimpan, karena mereka tidak akan dipasang di sana.

Menginstal alat penyiapan

Anda harus menjalankan yang berikut ini di dalam direktori alat penyiapan .

python bootstrap.py
python setup.py install

Instalasi dependensi umum

Sekarang Anda dapat menavigasi ke direcotry more-itertools dan menginstalnya seperti biasa.

  1. Unduh paketnya
  2. Buka kemasannya jika itu arsip
  3. Arahkan ( cd ...) ke direktori yang berisisetup.py
  4. Jika ada instruksi instalasi yang terdapat dalam dokumentasi yang terdapat di sini, baca dan ikuti instruksi dengan cara lain
  5. Ketik: python setup.py install
Tuan Polywhirl
sumber
2

Meskipun jawaban Sheena berhasil , piptidak berhenti hanya di situ.

Dari jawaban Sheena:

  1. Unduh paketnya
  2. buka zip jika sudah di-zip
  3. cd ke direktori yang berisi setup.py
  4. Jika ada instruksi penginstalan yang terkandung dalam dokumentasi yang terkandung di sini, baca dan ikuti instruksi dengan cara lain
  5. ketik python setup.py install

Pada akhirnya, Anda akan mendapatkan .eggfile dalam site-packages. Sebagai pengguna, ini seharusnya tidak mengganggu Anda. Anda bisa importdan uninstallpaket biasanya. Namun, jika Anda ingin melakukannya dengan pipcara tersebut, Anda dapat melanjutkan langkah-langkah berikut.

Di site-packagesdirektori,

  1. unzip <.egg file>
  2. ganti nama EGG-INFOdirektori menjadi<pkg>-<version>.dist-info
  3. Sekarang Anda akan melihat direktori terpisah dengan nama paket, <pkg-directory>
  4. find <pkg-directory> > <pkg>-<version>.dist-info/RECORD
  5. find <pkg>-<version>.dist-info >> <pkg>-<version>.dist-info/RECORD. Ini >>untuk mencegah penimpaan.

Sekarang, melihat site-packagesdirektori, Anda tidak akan pernah menyadari bahwa Anda menginstal tanpa pip. Untuk uninstall, lakukan saja yang biasa pip uninstall <pkg>.

John Strood
sumber
Bagaimana jika saya menginstal paket dari repositori Anaconda dan tidak memiliki setup.pyfile?
Bingung