Mengapa Portage mengeluh karena kurangnya modul `portage` Python?

0

Saat ini saya sedang mencoba menyiapkan Prefiks Gentoo. Saya mengambil skrip bootstrap dan menjalankannya, dan ia sampai di tahap tiga dan selesai menginstal header kernel sebelum Portage rusak. Sepertinya skrip berjalan untuk mencoba menginstal beberapa paket lagi, tetapi setiap upaya untuk memohon emergehanya menghasilkan ImportError:

Traceback (most recent call last):
  File "$EPREFIX/usr/bin/emerge", line 41, in <module>
    import portage
ImportError: No module named 'portage'

Anehnya , pada kenyataannya, ada sebuah direktori di $EPREFIX/usr/lib/python2.7/site-packages/portage, lengkap dengan __init__.pydan setidaknya beberapa lusin modul. Dan memohon awalan python2langsung dengan -c 'import portage'karya baik-baik saja (mencobanya dengan sistem host Python memberikan itu ImportError). Sejauh yang saya tahu, hal-hal harus menggunakan Python awalan; bins awalan ada di depan $PATH. Mungkin sesuatu di internal skrip salah mengatur ulang atau mengabaikan $PATH?

Blacklight Shining
sumber

Jawaban:

0

Periksa kembali python! Mungkin bukan versi yang Anda harapkan. Di sistem saya, pythonterhubung ke python3.5, meskipun sys-apps/portage(yang menyediakan portagepaket Python) belum memiliki target untuk Python 3.5. Argh!

Pada titik ini, Anda tidak akan dapat membangun kembali portagedengan target yang berbeda (karena emergerusak), jadi periksa semua versi Python yang terinstal (atau gali-dalam $EPREFIX/usr/lib/python*/site-packages) sampai Anda menemukan satu dengan portagepaket. Jika Anda memiliki pekerjaan eselect(saya punya), Anda dapat menggunakannya (lihat eselect python help); selain itu, Anda mungkin dapat pergi hanya dengan mengubah symlink secara manual. Portage bekerja dengan baik untuk saya setelah ini.


Sedangkan untuk bootstrap Prefix ... tampaknya jika Anda hanya menjalankan script secara interaktif lagi, itu akan mulai dari awal lagi, langsung dari awal. Saya tidak ingin memulai lagi, jadi saya beralih ke proses bootstrap "manual" dan mengambil pada tahap ketiga, di mana skrip telah gagal. Saya benar-benar tidak yakin mengapa metode ini direkomendasikan, mengingat skrip bootstrap melakukan semua pekerjaan, seperti dalam metode yang direkomendasikan.

Blacklight Shining
sumber
-1

Saya menemukan masalah yang sama ketika melakukan kompilasi silang dari sistem berbasis lengan - armv7a-hardfloat-linux-gnueabi. Masalahnya dimulai setelah saya menjalankan portage eix dan portage-utiles. lain kali chroot dan env-perbarui atau muncul proses faild dengan pesan yang tepat diposting di atas.

Saya pikir, itu harus terkait dengan eksekusi skrip python dan muncul python-exec dari lingkungan host - emerge berjalan dengan baik, namun tidak menyelesaikan masalah. Saya staterd melihat-lihat di direktori lib dan menyadari bahwa karena lingkungan crosse-dev saya mendapat lib64 di / usr dan di sana ada portage directroy. Saya menggabungkannya dengan / usr / lib dan membuat asymlink dari / usr / lib -> / usr / lib64. sama di bawah /. masalah yang dijelaskan sudah hilang untuk saya.

Saya tidak tahu apakah ini akan berlaku untuk kasus Anda juga, tetapi mungkin memberi Anda petunjuk baru ke arah mana mencari;)

sorak-sorai!

spegry
sumber
koreksi, direktori /usr/lib/python2.7 dan /usr/lib/python3.4 di bawah / usr / lib / 64 ...
spegry
Tidak tahu mengapa hal ini dibatalkan, tetapi saya memiliki masalah yang serupa dalam membuat rantai alat musl yang didukung crossdev.
hanetzer