Domanda

Vorrei eseguire il mio server pypi interno, per la distribuzione di uova all'interno della mia organizzazione.

Ho trovato alcuni progetti, come:

A quanto ho capito, pypi.python.org utilizza un software chiamato Cheese Shop.

Le mie domande:

  1. Perché non posso usare il cheeseshop stesso? (Non riesco a trovarlo, non sono sicuro che esista)
  2. In che modo gli altri risolvono questo problema? (Attualmente usiamo blush svn per distribuire le uova)

* modifica: questo sembra canonico http://wiki.python.org/moin/PyPiImplementations. Sono comunque interessato al feedback.

È stato utile?

Soluzione

La fonte di Cheese Shop può essere scaricata da https://bitbucket.org/pypa/pypi/ src . C'è anche un esempio, dalla pagina a cui ti sei collegato, di usare Apache come "stupido" Repository di pacchetti Python:

# Mount pypi repositories into URI space
Alias /pypi   /var/pypi

# /pypi/dev: Redirect for unknown packages (fallback to pypi)
RewriteCond   /var/pypi/dev/$1 !-d
RewriteCond   /var/pypi/dev/$1 !-f
RewriteRule   ^/pypi/dev/([^/]+)/?$ http://pypi.python.org/pypi/$1/ [R,L]

RewriteCond   /var/pypi/dev/$1/$2 !-f
RewriteRule   ^/pypi/dev/([^/]+)/([^/]+)$ http://pypi.python.org/pypi/$1/$2 [R,L]

# /pypi/stable: Redirect for unknown packages (fallback to pypi)
RewriteCond   /var/pypi/stable/$1 !-d
RewriteCond   /var/pypi/stable/$1 !-f
RewriteRule   ^/pypi/stable/([^/]+)/?$ http://pypi.python.org/pypi/$1/ [R,L]

RewriteCond   /var/pypi/stable/$1/$2 !-f
RewriteRule   ^/pypi/stable/([^/]+)/([^/]+)$ http://pypi.python.org/pypi/$1/$2 [R,L]

Altri suggerimenti

Per una soluzione leggera, utilizzare pypiserver .

Magazzino

Warehouse sarebbe la soluzione migliore nel 2017. Dal README del progetto:

  

Warehouse è un repository di pacchetti Python di nuova generazione progettato per sostituire   la base di codice legacy che attualmente alimenta PyPI

...

  

Puoi eseguire Warehouse localmente usando docker e docker-compose . Vedere    Introduzione   nella documentazione per istruzioni su come configurarlo.

È gestito da The Python Packaging Authority (PyPA) che lavora in collaborazione con i membri del core Python team di sviluppo e esiste una versione live in esecuzione su https://pypi.org/ che rispecchia tutto nell'eredità PyPI ( https://pypi.python.org/ ).

Esiste un fork di djangopypi chiamato djangopypi2 da cui puoi ottenerlo da https://github.com/popen2/ djangopypi2 / , l'ho installato e funziona per me, questa opzione è quella che avevo scelto da un elenco di circa 24 alternative che ho trovato in una ricerca recente, puoi vedere l'elenco qui: http://uyeya.blogspot.com/2013/10/list- di-locali-alternative-di-pypi.html

devpi

Lo stiamo usando in un ambiente aziendale e siamo abbastanza soddisfatti. Supporta replica, indici privati ??ed ereditarietà di indici.

Aggiornato: crate.io si è chiuso e il dominio ora è completamente qualcos'altro.

Un progetto che non è stato menzionato è https://crate.io/ , che sembra molto attivo. Sostiene di essere un "indice di packaging Python di nuova generazione", ma i loro repository sono suddivisi piacevolmente in pezzi che sembrano favorire la personalizzazione e il remix dei tuoi scopi.

Se desideri una soluzione più leggera per distribuire un intero server Pypi, puoi provare a utilizzare un indice del server generato da basketweaver .

Un altro mancante da questo elenco (vecchio):

djangopypi

Basato su Django, che potrebbe essere un po 'eccessivo, ma adoro il django e rende estremamente semplice modificarlo in base alle tue esigenze, nel caso in cui non fosse soddisfacente.

E il codice sorgente della cassa è disponibile, anche se la documentazione è, almeno si può dire, inesistente:

Crate.Web

È un'applicazione Django che fornisce un indice del pacchetto Python. Utilizza un paio di altri pacchetti da https://github.com/crateio in modo che tu possa essere in grado di implementare il tuo versione senza django.

Sto pensando specificamente a uno statico, ho sempre pensato che ci potesse essere un modo molto semplice per esplorare direttamente alcuni repository [preconfigurati] e acquistare formaggi direttamente dai miei repository pubblici e privati ??github / bitbucket, con solo un semplice processo (gunicorn) in esecuzione.

Ho riscontrato lo stesso problema e ClueReleaseManager ha risolto il problema dell'hosting di un server PyPI interno / repository Python personalizzato per me.

Questo risponde alla domanda due, e immagino tu abbia già la risposta alla domanda uno.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top