Εδώ είναι το πρόβλημα
Έχω ένα αρχείο requirements.txt που μοιάζει με:
BeautifulSoup==3.2.0
Django==1.3
Fabric==1.2.0
Jinja2==2.5.5
PyYAML==3.09
Pygments==1.4
SQLAlchemy==0.7.1
South==0.7.3
amqplib==0.6.1
anyjson==0.3
...
Έχω έναν τοπικό κατάλογο αρχείων που περιέχει όλα τα πακέτα + άλλα.
Έχω δημιουργήσει ένα νέο virtualenv με
bin/virtualenv testing
κατά την ενεργοποίησή του, προσπάθησα να εγκαταστήσω τα πακέτα σύμφωνα με το requirements.txt από τον τοπικό κατάλογο αρχείων.
source bin/activate
pip install -r /path/to/requirements.txt -f file:///path/to/archive/
Έλαβα κάποια έξοδο που φαίνεται να δείχνει ότι η εγκατάσταση είναι εντάξει
Downloading/unpacking Fabric==1.2.0 (from -r ../testing/requirements.txt (line 3))
Running setup.py egg_info for package Fabric
warning: no previously-included files matching '*' found under directory 'docs/_build'
warning: no files found matching 'fabfile.py'
Downloading/unpacking South==0.7.3 (from -r ../testing/requirements.txt (line 8))
Running setup.py egg_info for package South
....
Αλλά ο μεταγενέστερος έλεγχος αποκάλυψε ότι κανένα από τα πακέτα δεν έχει εγκατασταθεί σωστά. Δεν μπορώ να εισαγάγω το πακέτο και κανένα δεν βρίσκεται στον κατάλογο site-packages του virtualenv μου. Οπότε τι πήγε στραβά;
Έχω διαβάσει τα παραπάνω, συνειδητοποιώ ότι αυτή είναι μια παλιά ερώτηση, αλλά είναι εντελώς άλυτη και εξακολουθεί να βρίσκεται στην κορυφή των αποτελεσμάτων της αναζήτησης στο Google, οπότε εδώ είναι μια απάντηση που λειτουργεί για όλους:
pip install -r /path/to/requirements.txt
Αυτό λειτουργεί για μένα:
$ pip install -r requirements.txt --no-index --find-links file:///tmp/packages
--no-index
- Αγνοήστε το ευρετήριο του πακέτου (κοιτάζοντας μόνο τις διευθύνσεις URL --find-links
).
-f, --find-links <URL>
- Αν είναι μια διεύθυνση URL ή μια διαδρομή προς ένα αρχείο html, τότε αναλύει για συνδέσμους προς αρχεία.
Αν είναι τοπική διαδρομή ή διεύθυνση URL file://
που είναι κατάλογος, τότε αναζητήστε αρχεία στην λίστα καταλόγων.
Για να εγκαταστήσει το virtualenv όλα τα αρχεία στο αρχείο requirements.txt.