Paket PYPI üzerindeyse, paketi ve yerel bir dizine olan bağımlılıklarını indirin. Örneğin
$ mkdir / pypi && cd / pypi
$ ls -la
-rw-r - r-- 1 pavel personeli 237954 Nis 19 11:31 Flask-WTF-0.6.tar.gz
-rw-r - r-- 1 pavel personeli 389741 Şub 22 17:10 Jinja2-2.6.tar.gz
-rw-r - r-- 1 pavel personeli 70305 11 Nisan 00:28 MySQL-python-1.2.3.tar.gz
-rw-r - r-- 1 pavel personeli 2597214 10 Nis 18:26 SQLAlchemy-0.7.6.tar.gz
-rw-r - r-- 1 pavel personeli 1108056 22 Şub 17:10 Werkzeug-0.8.2.tar.gz
-rw-r - r-- 1 pavel personeli 488207 10 Nis 18:26 boto-2.3.0.tar.gz
-rw-r - r-- 1 pavel personeli 490192 Nis 16 12:00 flask-0.9-dev-2a6c80a.tar.gz
Bazı paketlerin benzer görünümlü tarballlara elle arşivlenmesi gerekebilir. Bir şeyin daha yeni (daha az kararlı) bir versiyonunu istediğimde bunu çok yapıyorum. Bazı paketler PYPI'de değildir, bu yüzden onlar için de geçerlidir.
Düzgün biçimli bir Python uygulamanız olduğunu varsayalım ~/src/myapp
. dizininizde bulunan bir veya daha fazla şeyden söz eden bir listeye sahip ~/src/myapp/setup.py
olacaktır . Şöyle ki:install_requires
/pypi
install_requires=[
'boto',
'Flask',
'Werkzeug',
# and so on
Uygulamanızı hala hacklerken gerekli tüm bağımlılıklarla çalıştırabilmek istiyorsanız, şöyle bir şey yaparsınız:
$ cd ~ / src / myapp
$ python setup.py develop --always-unzip --allow-hosts = Yok --find-links = / pypi
Bu şekilde uygulamanız doğrudan kaynak dizininizden yürütülür. Bir şeyleri hackleyebilir ve daha sonra hiçbir şey yeniden oluşturmadan uygulamayı yeniden çalıştırabilirsiniz.
Uygulamanızı ve bağımlılıklarını geçerli python ortamına yüklemek istiyorsanız, şöyle bir şey yaparsınız:
$ cd ~ / src / myapp
$ easy_install --always-unzip --allow-hosts = Yok --find-links = / pypi.
Her iki durumda da, /pypi
dizinde bir veya daha fazla bağımlılık yoksa derleme başarısız olur . Eksik şeyleri internetten karışık bir şekilde yüklemeye çalışmaz.
Çok çağırmak için tavsiye setup.py develop ...
ve easy_install ...
aktif içindeki sanal ortamda global Python ortamı kirletmesini önlemek için. Bu (sanalenv) hemen hemen gitmek için bir yoldur. Global Python ortamına hiçbir şey kurmayın.
Uygulamanızı oluşturduğunuz makine, üzerine yerleştirmek istediğiniz makine ile aynı mimariye sahipse, easy_install
her şeyi kullandığınız tüm sanal ortam dizinini tarball edebilirsiniz. Ancak top atmadan hemen önce sanal ortam dizinini yeniden konumlandırılabilir yapmalısınız (bkz. --Relocatable seçeneği). NOT: Hedef makinenin aynı Python sürümüne sahip olması ve uygulamanızın sahip olabileceği C tabanlı bağımlılıkların da önceden kurulu olması gerekir (örn. PIL'a bağlıysanız, libpng, libjpeg, vb. Önceden yüklenmiş olmalıdır) .