Berbagi teknologi

[Pytorch] Penanganan kesalahan migrasi pengemasan paket lingkungan Conda

2024-07-12

한어Русский языкEnglishFrançaisIndonesianSanskrit日本語DeutschPortuguêsΕλληνικάespañolItalianoSuomalainenLatina

Kemasan lingkungan virtual Anaconda

Eksperimen berhasil diverifikasi pada mesin ini. Mesin ini perlu dimigrasikan ke peralatan kelas atas. Dengan satu 4090D, diperlukan waktu dua setengah jam untuk menjalankan model besar multi-modal 128k untuk inferensi dan evaluasi pada kumpulan data. Itu masih terlalu memakan waktu dan tugas yang berat. Hal ini sangat mendesak untuk diserahkan ke mesin 8A100.
Masukkan deskripsi gambar di sini

Untuk memigrasikan lingkungan anaconda dari komputer sumber ke komputer target, pertama-tama, kedua komputer harus menginstal anaconda.

1. Pengemasan lingkungan komputer sumber

Gunakan operasi Anaconda Prompt

1. Instal alat conda-pack

conda install conda-pack
  • 1

Masukkan deskripsi gambar di sini

2. Menentukan lingkungan

conda env list
  • 1

Masukkan deskripsi gambar di sini

Temukan nama lingkungan yang ingin Anda paket. Misalnya, nama lingkungan saya adalah VLM

3. Lingkungan pengemasan

conda pack -n VLM -o VLM.tar.gz
  • 1

4. Salin lingkungan pengemasan ke flash drive USB

Lingkungan Windows dikemas dalam direktori saat ini, misalnya XX adalah nama pengguna dan jalurnya
C:/Pengguna/XX/VLM.tar.gz
Sama untuk Linux

2. Migrasi lingkungan ke komputer target

①Metode 1
1. Gunakan Anaconda Prompt untuk membuat lingkungan baru, misalnya lingkungan baru adalah py310:

conda create -n py310 python=3.10
  • 1

2. Salin lingkungan pengemasan di flash drive USB ke direktori nama pengguna komputer target:
C:/Pengguna/XX/Py36.tar.gz
3. Gunakan Anaconda Prompt untuk mengekstrak paket lingkungan ke jalur lingkungan baru:

tar -zxvf Py36.tar.gz -C E:anaconda3envspy36
  • 1

4. Aktifkan lingkungan baru

conda activate py310
  • 1

Catatan: Jika gagal, coba metode kedua:
②Metode 2
1. Temukan folder lingkungan komputer target
Jalur lingkungan adalah folder envs di direktori tempat anaconda berada. Misalnya, milik saya adalah: E: anaconda3envs.
2. Salin lingkungan pengemasan di flash drive USB ke folder lingkungan envs.
3. Gunakan baris perintah cmd di jalur lingkungan untuk membuat folder baru dan beri nama py36:

mkdir py36
  • 1

Atau buat folder baru secara manual
4. Gunakan baris perintah cmd untuk mendekompresi lingkungan pengemasan ke lingkungan baru

tar -zxvf Py36.tar.gz -C ./py36
  • 1

3. Penanganan pengecualian

pip install -e. Menyebabkan kegagalan paket→abaikan

Kesalahan dilaporkan sebagai berikut

Collecting packages...
CondaPackError: Cannot pack an environment with editable packages
installed (e.g. from `python setup.py develop` or
 `pip install -e`). Editable packages found:

- /home/xxx
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6

Gunakan yang berikut ini sebagai gantinya

conda pack -n VLM -o VLM.tar.gz --ignore-editable-packages
  • 1

Buka zip menggunakan

mkdir ~/ananconda/envs/pcdet-tmp
tar -xf pcdet.tar.gz -C ~/ananconda/envs/pcdet-tmp
cd ~/ananconda/envs/pcdet-tmp
source ./bin/activate
  • 1
  • 2
  • 3
  • 4

File yang dikelola telah dihapus atau ditimpa → dikompresi menjadi tar

CondaPackError:  
	Files managed by conda were found to have been deleted/overwritten in the following packages: 
		 - charset-normalizer 2.0.4:
		 - xxxx
This is usually due to `pip` uninstalling or clobbering conda managed files,
resulting in an inconsistent environment. Please check your environment for
conda/pip conflicts using `conda list`, and fix the environment by ensuring
only one version of each package is installed (conda preferred).
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8

Solusinya adalah mencoba menggunakan keunggulan WSL untuk mengemas lingkungan env di anaconda langsung di Windows. Namun, sejumlah besar kesalahan ketergantungan dan kesalahan penamaan dilaporkan.
Masukkan deskripsi gambar di sini
Akhirnya saya menyerah dan mencoba pengemasan dan kompresi di sistem Linux.
Di Linux, Anda dapat menggunakan perintah tar untuk mengompresi file atau folder ke dalam format .tar.gz.
tar adalah perintah yang digunakan untuk mengemas file.
-c berarti membuat file arsip baru.
-z berarti menggunakan kompresi gzip.
-v menunjukkan untuk menampilkan informasi verbose saat pengarsipan.
-f diikuti dengan nama file arsip.

Misalnya, jika Anda ingin mengompres folder bernama VLM di bawah env di anaconda, Anda dapat menggunakan perintah berikut:

tar -czvf VLM.tar.gz VLM
  • 1

Melihat

在Linux里去看位置,anaconda是不显示完整文件目录的,会直接不显示有env文件夹,但是可以直接cd 进env去看
  • 1

Masukkan deskripsi gambar di sini

Jika Anda ingin mengompresi satu file, seperti myfile.txt, Anda dapat menggunakan:

tar -czvf myfile.tar.gz myfile.txt
  • 1

Perintah ini akan membuat file .tar.gz di direktori saat ini. Anda dapat mengubah jalur file atau menentukan direktori keluaran jika perlu.
Masukkan deskripsi gambar di sini
Kompresi berhasil

Aktifkan kembali lingkungan

3. Langkah 3: Aktifkan lingkungan
Untuk kompresi tar, eksekusi dekompresi

tar -xzvf VLM.tar.gz
  • 1

Jika .zip disalin ke sistem lain dan diekstraksi ke direktori /xxxx/anaconda/envs/, itu adalah

unzip -d /xxxx/anaconda/envs/  pyenv.zip
  • 1

Melihat!Lingkungan virtual yang dikemas mencatat lingkungan sumber. Jalur instalasi anaconda pada sistem baru mungkin berbeda dari lingkungan sumber. Misalnya, lingkungan sumber adalah /xxxx/anaconda2023/, dan sistem baru adalah /xxxx/anaconda/ dalam hal ini, Anda harus terlebih dahulu Membuat direktori kosong di sistem baru yang sama dengan jalur instalasi anaconda lingkungan sumber, seperti jalur asli wsl.localhostUbuntuhometestanaconda3envsVLM
mkdir /xxxx/anaconda3/envs/
Kemudian buat tautan lunak
ln -s /xxxx/anaconda/envs/pyenv /xxxx/anaconda3/envs/
Arahkan direktori kosong ke jalur anaconda yang sebenarnya
Kemudian aktifkan aktivasi sumber lingkungan /xxxx/anaconda/envs/VLM

Semoga bisa selesai dengan lancar!

Nah, jika bermanfaat bagi Anda, silakan menyalinnya. Silakan tunjukkan qwq jika sulit untuk mengatur dan mencetak ulang!
Jika Anda memiliki saran atau komentar yang lebih baik, silakan tambahkan!
Nama saya Qi Yunpeng (Qi Qí), dan saya berusaha untuk berbagi kegembiraan algoritma dengan semua orang!

Satu gambar per blog (1/1)↓
Masukkan deskripsi gambar di sini

Referensi:
conda-pack memigrasikan lingkungan virtual
Lingkungan offline migrasi cadangan lingkungan virtual conda – masalah paket conda