windows esterno, - Come installo un pacchetto Python con un file.whl?




"python" pypi (13)

Ho problemi con l'installazione di un pacchetto Python (in particolare, JPype1 0.5.7) sulla mia macchina Windows, e vorrei installarlo con i binari di Christoph Gohlke's Window. (Che, secondo la mia esperienza, ha alleviato gran parte del problema per molte altre installazioni di pacchetti.)

Tuttavia, mentre Christoph era solito fornire file .exe in passato, recentemente sembra che stia caricando file .whl.

http://www.lfd.uci.edu/~gohlke/pythonlibs/#jpype

Ma come installo i file .whl?

Gli appunti:

  • Ho trovato documenti su ruota , ma non sembrano così convincenti nello spiegare come installare i file .whl.
  • Questa domanda è un duplicato con questa domanda , a cui non è stata data risposta diretta.

Answers

In caso di impossibilità di installare pacchetti specifici direttamente con PIP.

Puoi scaricare un .whl specifico .whl (ruota) da - https://www.lfd.uci.edu/~gohlke/pythonlibs/

CD (Cambia directory) a quel pacchetto scaricato e installarlo manualmente da -
pip install PACKAGENAME.whl
ex:
pip install ad3‑2.1‑cp27‑cp27m‑win32.whl


Per installare dalla ruota, dargli la directory in cui viene scaricata la ruota. Ad esempio, per installare package_name.whl :

pip install --use-wheel --no-index --find-links=/where/its/downloaded package_name

Assicurati di aver prima aggiornato pip per abilitare il supporto per le ruote:

pip install --upgrade pip

Quello che ho fatto è stato prima aggiornare il pip usando il comando: pip install --upgrade pip e poi ho anche installato wheel usando il comando: pip install wheel e poi ha funzionato perfettamente Fine.

Spero che funzioni per te, immagino.


Per poter installare i file wheel con un semplice doppio clic su di essi, puoi eseguire una delle seguenti operazioni:

1) Esegui due comandi nella riga di comando sotto i privilegi di amministratore:

assoc .whl=pythonwheel
ftype pythonwheel=cmd /c pip.exe install "%1" ^& pause

2) In alternativa, possono essere copiati in un file wheel.bat ed eseguiti con la casella di controllo "Esegui come amministratore" nelle proprietà.

Si presume che PS pip.exe sia nel PERCORSO.

Aggiornare:

(1) Quelli possono essere combinati in un'unica riga:

assoc .whl=pythonwheel& ftype pythonwheel=cmd /c pip.exe install -U "%1" ^& pause

(2) La sintassi per i file .bat è leggermente diversa:

assoc .whl=pythonwheel& ftype pythonwheel=cmd /c pip.exe install -U "%%1" ^& pause

Anche il suo output può essere reso più dettagliato:

@assoc .whl=pythonwheel|| echo Run me with administrator rights! && pause && exit 1
@ftype pythonwheel=cmd /c pip.exe install -U "%%1" ^& pause || echo Installation error && pause && exit 1
@echo Installation successfull & pause

vedi il mio post sul blog per i dettagli.


Su Windows non è possibile effettuare l'aggiornamento semplicemente utilizzando pip install --upgrade pip , poiché pip.exe è in uso e si sarebbe verificato un errore durante la sua sostituzione. Invece, dovresti aggiornare pip come questo:

easy_install --upgrade pip

Quindi controlla la versione del pip :

pip --version

Se mostra la serie 6.x , c'è il supporto per le ruote.

Solo allora, puoi installare un pacchetto di ruote come questo:

pip install your-package.whl

È necessario eseguire pip.exe dal prompt dei comandi sul mio computer. C:/Python27/Scripts/pip2.exe install numpy


Ci sono diverse versioni di file sul sito di Christoph Gohlke.

Qualcosa che ho trovato importante quando si installano le ruote da questo sito è quello di eseguire prima questo dalla console Python:

import pip
print(pip.pep425tags.get_supported())

in modo che tu sappia quale versione dovresti installare per il tuo computer. Scegliere la versione sbagliata potrebbe non riuscire nell'installazione del pacchetto (specialmente se non si utilizza il tag CPython corretto, ad esempio cp27).


Ho appena usato il seguente che era abbastanza semplice. Per prima cosa apri una console e poi cd in cui hai scaricato il tuo file come some-package.whl e usalo

pip install some-package.whl

Nota: se pip.exe non viene riconosciuto, è possibile trovarlo nella directory "Scripts" da cui è stato installato python. Se pip non è installato, questa pagina può aiutare: Come installo pip su Windows?

Nota: per chiarimenti
Se copi il file *.whl locale (ad esempio C: \ some-dir \ some-file.whl ) utilizza i seguenti parametri della riga di comando:

pip install C:/some-dir/some-file.whl

Sono nella stessa barca dell'OP.

Utilizzando un prompt dei comandi di Windows, dalla directory:

C:\Python34\Scripts>
pip install wheel

sembrava funzionare.

Cambiando la directory dove si trovava il whl, mi dice semplicemente che "pip non viene riconosciuto". Tornando a C:\Python34\Scripts> , quindi utilizzando il comando completo sopra per fornire la posizione 'where / its / download', si dice Requirement 'scikit_image-...-win32.whl' looks like a filename, but the filename does not exist

Così ho eliminato una copia di .whl in Python34 / Scripts, ho eseguito di nuovo lo stesso comando (con i --find-links= andando ancora nell'altra cartella), e questa volta ha funzionato.


L'unico modo in cui sono riuscito a installare NumPy era il seguente:

Ho scaricato NumPy da qui https://pypi.python.org/pypi/numpy

Questo modulo

https://pypi.python.org/packages/d7/3c/d8b473b517062cc700575889d79e7444c9b54c6072a22189d1831d2fbbce/numpy-1.11.2-cp35-none-win32.whl#md5=e485e06907826af5e1fc88608d0629a2

Esecuzione dei comandi dal percorso di installazione di Python in PowerShell

PS C:\Program Files (x86)\Python35-32> .\python -m pip install C:/Users/MyUsername/Documents/Programs/Python/numpy-1.11.2-cp35-none-win32.whl
Processing c:\users\MyUsername\documents\programs\numpy-1.11.2-cp35-none-win32.whl
Installing collected packages: numpy
Successfully installed numpy-1.11.2
PS C:\Program Files (x86)\Python35-32>

PS: l'ho installato su Windows 10.


È possibile installare il file .whl utilizzando il pip install filename . Anche se per usarlo in questo formato, dovrebbe essere nella stessa directory della riga di comando, altrimenti specificare il nome file completo, insieme al suo indirizzo come pip install C:\Some\PAth\filename .

Assicurati anche che il file .whl sia della stessa piattaforma che stai usando, fai un python -V per scoprire quale versione di Python stai usando e se è win32 o 64, installa la versione corretta in base ad essa.


Per evitare di dover scaricare tali file, puoi provare:

pip install --use-wheel pillow

Per ulteriori informazioni, vedere questo .


Una metaclasse è la classe di una classe. Come una classe definisce come si comporta un'istanza della classe, una metaclasse definisce come si comporta una classe. Una classe è un'istanza di un metaclasse.

Mentre in Python puoi usare le callable arbitrarie per metaclassi (come gli spettacoli di Jerub ), l'approccio più utile è in realtà quello di renderlo una vera e propria classe. type è il solito metaclasse in Python. Nel caso ti stia chiedendo, sì, il type è di per sé una classe, ed è un suo tipo. Non sarai in grado di ricreare qualcosa come il type esclusivamente in Python, ma Python imbroglia un po '. Per creare il tuo metaclasse in Python devi solo sottoclasse il type .

Un metaclasse è più comunemente usato come una fabbrica di classi. Come si crea un'istanza della classe chiamando la classe, Python crea una nuova classe (quando esegue l'istruzione 'classe') chiamando il metaclasse. In combinazione con i normali metodi __init__ e __new__ , le metaclassi consentono quindi di fare 'cose extra' quando si crea una classe, come registrare la nuova classe con un registro, o addirittura sostituire la classe con qualcos'altro.

Quando viene eseguita l'istruzione della class , Python esegue prima il corpo dell'istruzione della class come un normale blocco di codice. Lo spazio dei nomi risultante (un dict) contiene gli attributi della futura classe. La metaclasse viene determinata osservando i baseclass della classe-to-be (i metaclassi sono ereditati), l'attributo __metaclass__ della classe-to-be (se presente) o la variabile globale __metaclass__ . Il metaclasse viene quindi chiamato con il nome, le basi e gli attributi della classe per istanziarlo.

Tuttavia, le metaclassi in realtà definiscono il tipo di una classe, non solo una fabbrica per essa, quindi puoi fare molto di più con loro. Ad esempio, puoi definire i metodi normali sul metaclass. Questi metodi metaclass sono come i metodi di classe, in quanto possono essere chiamati sulla classe senza un'istanza, ma non sono come i metodi di classe in quanto non possono essere chiamati su un'istanza della classe. type.__subclasses__() è un esempio di un metodo sul metaclass di type . Puoi anche definire i normali metodi "magici", come __add__ , __iter__ e __getattr__ , per implementare o modificare il comportamento della classe.

Ecco un esempio aggregato di bit e pezzi:

def make_hook(f):
    """Decorator to turn 'foo' method into '__foo__'"""
    f.is_hook = 1
    return f

class MyType(type):
    def __new__(mcls, name, bases, attrs):

        if name.startswith('None'):
            return None

        # Go over attributes and see if they should be renamed.
        newattrs = {}
        for attrname, attrvalue in attrs.iteritems():
            if getattr(attrvalue, 'is_hook', 0):
                newattrs['__%s__' % attrname] = attrvalue
            else:
                newattrs[attrname] = attrvalue

        return super(MyType, mcls).__new__(mcls, name, bases, newattrs)

    def __init__(self, name, bases, attrs):
        super(MyType, self).__init__(name, bases, attrs)

        # classregistry.register(self, self.interfaces)
        print "Would register class %s now." % self

    def __add__(self, other):
        class AutoClass(self, other):
            pass
        return AutoClass
        # Alternatively, to autogenerate the classname as well as the class:
        # return type(self.__name__ + other.__name__, (self, other), {})

    def unregister(self):
        # classregistry.unregister(self)
        print "Would unregister class %s now." % self

class MyObject:
    __metaclass__ = MyType


class NoneSample(MyObject):
    pass

# Will print "NoneType None"
print type(NoneSample), repr(NoneSample)

class Example(MyObject):
    def __init__(self, value):
        self.value = value
    @make_hook
    def add(self, other):
        return self.__class__(self.value + other.value)

# Will unregister the class
Example.unregister()

inst = Example(10)
# Will fail with an AttributeError
#inst.unregister()

print inst + inst
class Sibling(MyObject):
    pass

ExampleSibling = Example + Sibling
# ExampleSibling is now a subclass of both Example and Sibling (with no
# content of its own) although it will believe it's called 'AutoClass'
print ExampleSibling
print ExampleSibling.__mro__




python windows pip python-wheel jpype