Κοινή χρήση τεχνολογίας

[Pytorch] Διαχείριση σφαλμάτων μετανάστευσης συσκευασίας περιβάλλοντος συσκευασίας Conda

2024-07-12

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

Συσκευασία εικονικού περιβάλλοντος Anaconda

Το πείραμα επαληθεύτηκε με επιτυχία σε αυτό το μηχάνημα. Χρειάζεται μετεγκατάσταση σε εξοπλισμό υψηλής τεχνολογίας. Ήταν ακόμη πολύ χρονοβόρο και βαρύ έργο. Χρειάζεται επειγόντως να παραδοθεί στο μηχάνημα 8A100.
Εισαγάγετε την περιγραφή της εικόνας εδώ

Για τη μετεγκατάσταση του περιβάλλοντος anaconda από τον υπολογιστή προέλευσης στον υπολογιστή προορισμού, πρώτα και οι δύο υπολογιστές πρέπει να έχουν εγκατεστημένο το anaconda.

1. Περιβαλλοντική συσκευασία του υπολογιστή προέλευσης

Χρησιμοποιήστε τη λειτουργία Anaconda Prompt

1. Εγκαταστήστε το εργαλείο conda-pack

conda install conda-pack
  • 1

Εισαγάγετε την περιγραφή της εικόνας εδώ

2. Προσδιορίστε το περιβάλλον

conda env list
  • 1

Εισαγάγετε την περιγραφή της εικόνας εδώ

Βρείτε το όνομα του περιβάλλοντος που θέλετε να συσκευάσετε. Για παράδειγμα, το όνομα του περιβάλλοντος μου είναι VLM

3. Περιβάλλον συσκευασίας

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

4. Αντιγράψτε το περιβάλλον συσκευασίας σε μια μονάδα flash USB

Το περιβάλλον των Windows είναι συσκευασμένο στον τρέχοντα κατάλογο Για παράδειγμα, το XX είναι το όνομα χρήστη και η διαδρομή είναι
C:/Users/XX/VLM.tar.gz
Το ίδιο και για το Linux

2. Μεταφέρετε το περιβάλλον στον υπολογιστή προορισμού

① Μέθοδος 1
1. Χρησιμοποιήστε το Anaconda Prompt για να δημιουργήσετε ένα νέο περιβάλλον, για παράδειγμα, το νέο περιβάλλον είναι py310:

conda create -n py310 python=3.10
  • 1

2. Αντιγράψτε το περιβάλλον συσκευασίας στη μονάδα flash USB στον κατάλογο ονομάτων χρήστη του υπολογιστή προορισμού:
C:/Users/XX/Py36.tar.gz
3. Χρησιμοποιήστε το Anaconda Prompt για να αποσυμπιέσετε το συσκευασμένο περιβάλλον στη νέα διαδρομή περιβάλλοντος:

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

4. Ενεργοποιήστε το νέο περιβάλλον

conda activate py310
  • 1

Σημείωση: Εάν αυτό αποτύχει, δοκιμάστε τη μέθοδο δύο:
②Μέθοδος 2
1. Βρείτε το φάκελο περιβάλλοντος του υπολογιστή προορισμού
Η διαδρομή του περιβάλλοντος είναι ο φάκελος envs στον κατάλογο όπου βρίσκεται το anaconda. Για παράδειγμα, το δικό μου είναι: E:anaconda3envs.
2. Αντιγράψτε το περιβάλλον συσκευασίας στη μονάδα flash USB στο φάκελο περιβάλλοντος envs.
3. Χρησιμοποιήστε τη γραμμή εντολών cmd στη διαδρομή περιβάλλοντος για να δημιουργήσετε έναν νέο φάκελο και να τον ονομάσετε py36:

mkdir py36
  • 1

Ή δημιουργήστε έναν νέο φάκελο με μη αυτόματο τρόπο
4. Χρησιμοποιήστε τη γραμμή εντολών cmd για να αποσυμπιέσετε το περιβάλλον συσκευασίας σε ένα νέο περιβάλλον

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

3. Χειρισμός εξαίρεσης

pip install -e Προκαλεί αποτυχία pack→ignore

Το σφάλμα αναφέρεται ως εξής

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

Χρησιμοποιήστε τα παρακάτω

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

Αποσυμπιέστε χρησιμοποιώντας

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

Τα διαχειριζόμενα αρχεία έχουν διαγραφεί ή αντικατασταθεί → συμπιεσμένα σε πίσσα

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

Η λύση ήταν να προσπαθήσουμε να χρησιμοποιήσουμε τα πλεονεκτήματα του WSL για να συσκευάσουμε το περιβάλλον env στο anaconda απευθείας κάτω από τα Windows, ωστόσο, αναφέρθηκε ένας τεράστιος αριθμός σφαλμάτων εξάρτησης και ονομάτων.
Εισαγάγετε την περιγραφή της εικόνας εδώ
Τελικά, εγκατέλειψα και δοκίμασα τη συσκευασία και τη συμπίεση στο σύστημα Linux Είναι εφικτό;
Στο Linux, μπορείτε να χρησιμοποιήσετε την εντολή tar για να συμπιέσετε ένα αρχείο ή φάκελο σε μορφή .tar.gz.
Το tar είναι μια εντολή που χρησιμοποιείται για τη συσκευασία αρχείων.
-c σημαίνει δημιουργία νέου αρχείου αρχειοθέτησης.
-z σημαίνει χρήση συμπίεσης gzip.
Το -v υποδεικνύει την εμφάνιση αναλυτικών πληροφοριών κατά την αρχειοθέτηση.
Το -f ακολουθείται από το όνομα του αρχείου αρχειοθέτησης.

Για παράδειγμα, εάν θέλετε να συμπιέσετε το φάκελο με το όνομα VLM στο env στο anaconda, μπορείτε να χρησιμοποιήσετε την ακόλουθη εντολή:

tar -czvf VLM.tar.gz VLM
  • 1

Ειδοποίηση

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

Εισαγάγετε την περιγραφή της εικόνας εδώ

Εάν θέλετε να συμπιέσετε ένα μεμονωμένο αρχείο, όπως το myfile.txt, μπορείτε να χρησιμοποιήσετε:

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

Αυτές οι εντολές θα δημιουργήσουν ένα αρχείο .tar.gz στον τρέχοντα κατάλογο. Μπορείτε να αλλάξετε τη διαδρομή του αρχείου ή να καθορίσετε τον κατάλογο εξόδου, εάν είναι απαραίτητο.
Εισαγάγετε την περιγραφή της εικόνας εδώ
Επιτυχής συμπίεση

Επανενεργοποιήστε το περιβάλλον

3. Βήμα 3: Ενεργοποιήστε το περιβάλλον
Για συμπίεση πίσσας, εκτέλεση αποσυμπίεσης

tar -xzvf VLM.tar.gz
  • 1

Εάν το .zip αντιγραφεί σε άλλο σύστημα και εξαχθεί στον κατάλογο /xxxx/anaconda/envs/, είναι

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

Ειδοποίηση!Το συσκευασμένο εικονικό περιβάλλον καταγράφει το περιβάλλον προέλευσης Η διαδρομή εγκατάστασης anaconda στο νέο σύστημα μπορεί να είναι διαφορετική από το περιβάλλον προέλευσης /xxxx/anaconda2023/ και το νέο σύστημα είναι /xxxx/anaconda Σε αυτήν την περίπτωση, πρέπει πρώτα να δημιουργήσετε έναν κενό κατάλογο στο νέο σύστημα που είναι ίδιος με το περιβάλλον προέλευσης της διαδρομής εγκατάστασης anaconda, όπως η αρχική διαδρομή wsl.localhostUbuntuhometestanaconda3envsVLM
mkdir /xxxx/anaconda3/envs/
Στη συνέχεια, δημιουργήστε έναν μαλακό σύνδεσμο
ln -s /xxxx/anaconda/envs/pyenv /xxxx/anaconda3/envs/
Τοποθετήστε τον κενό κατάλογο στην πραγματική διαδρομή ανακόντα
Στη συνέχεια, ενεργοποιήστε την πηγή περιβάλλοντος ενεργοποίηση /xxxx/anaconda/envs/VLM

Ελπίζω να ολοκληρωθεί ομαλά!

Λοιπόν, εάν είναι χρήσιμο για εσάς, μη διστάσετε να το αντιγράψετε.
Εάν έχετε καλύτερες προτάσεις ή σχόλια, προσθέστε τα!
Το όνομά μου είναι Qi Yunpeng (Qí Qí) και προσπαθώ να μοιραστώ τη χαρά των αλγορίθμων με όλους!

Μία φωτογραφία ανά ιστολόγιο (1/1)↓
Εισαγάγετε την περιγραφή της εικόνας εδώ

Αναφορά:
Το conda-pack μετεγκαθιστά εικονικά περιβάλλοντα
Μετανάστευση αντιγράφων ασφαλείας περιβάλλοντος εκτός σύνδεσης conda εικονικού περιβάλλοντος – πρόβλημα πακέτου conda