2017-04-27 19 views
15

Python üzerinde çalışmaya başladım. Projemde require.txt ve setup.py ekledim. Ama yine de iki dosya hakkında kafam karıştı. Ben setup.py yeniden dağıtılabilir şeyler için tasarlanmış gibi bazı bilgiler var ve require.txt yeniden dağıtılabilir olmayan şeyler için tasarlanmıştır. Ama doğru olup olmadığını bilmiyorum.requirements.txt vs setup.py

Lütfen bana yardım edebilir misiniz?

+0

hi @lucy welcome to SO ... Bir [mvce] oluşturmalısınız (https://stackoverflow.com/help/mcve) –

+0

Tam başlığı kullanarak web'de arama yaptınız mı? [Bu makale] (https://caremad.io/posts/2013/07/setup-vs-requirement/) (aradığım ilk isabet) konuyla ilgili okuduğum en iyisidir. – Chris

+1

Bu makale faydalı olabilir: https://caremad.io/posts/2013/07/setup-vs-requirement/ (Özür dilerim, doğru cevaplara ulaşmak için çok tembel). Başka bir şey, bazı araçların (ör. Test), önyargılarını bir ya da bir diğerine doğru yönlendirebilir - ancak Python üzerinde çalışmaya başlamış olsanız sizi rahatsız etmesine izin vermeyin. – drdaeman

cevap

10

requirements.txt

Bu, geliştirme ortamını ayarlamak için yardımcı olur. pip gibi programlar, dosyada listelenen tüm paketleri tek bir basamağa yüklemek için kullanılabilir. Bundan sonra python komut dosyasını geliştirmeye başlayabilirsiniz.

setup.py

Bu size yeniden dağıtabilir ki paketleri oluşturmasına olanak sağlar. Bu betik, paketinizi kurmaya yöneliktir, geliştirme ortamınızı pip -r < requirements.txt olarak hazırlamamaktadır. Setup.py hakkında daha ayrıntılı bilgi için bkz. this answer.

Projenizin bağımlılıkları her iki dosyada da listelenmiştir.

+0

Hangi durumlarda sadece bunlardan birine sahip olabilirim? Hangi ikisine birden sahip olacağım? –

+1

Erm ... sadece yerel makinenizde eğlence için komut dosyası veriyorsunuz: Ne de. Komut dosyası, birden fazla makine/vitualenvs üzerinde geliştirildi ancak yeniden dağıtılmadı: requirements.txt. Komut dosyası yalnızca makinenizde geliştirilmiştir, ancak yeniden dağıtılmalıdır: setup.py. Komut çoklu ortamlarda yeniden dağıtılacak ve geliştirilecektir: Her ikisi. – AndreasT

+0

Bunu cevaba ekler misiniz? –