2014-07-14 3 views
8

Ich habe ein Python-Paket, das ich in der /usr/lib/python2.7/dist-packages oder einem anderen spezifischen Verzeichnis für diese Angelegenheit installieren muss.Wie kann setuptools in einem benutzerdefinierten Verzeichnis installiert werden?

Immer, wenn ich laufen die setup.py Skript es die folgende Ausgabe gibt:

[email protected]:~/som_dir/plugins/abc$python setup.py install 
running install 
running bdist_egg 
running egg_info 
writing abcNewPlugin.egg-info/PKG-INFO 
writing top-level names to abcNewPlugin.egg-info/top_level.txt 
writing dependency_links to abcNewPlugin.egg-info/dependency_links.txt 
writing entry points to abcNewPlugin.egg-info/entry_points.txt 
reading manifest file 'abcNewPlugin.egg-info/SOURCES.txt' 
writing manifest file 'abcNewPlugin.egg-info/SOURCES.txt' 
installing library code to build/bdist.linux-x86_64/egg 
running install_lib 
warning: install_lib: 'build/lib.linux-x86_64-2.7' does not exist -- no Python modules to install 

creating build/bdist.linux-x86_64/egg 
creating build/bdist.linux-x86_64/egg/EGG-INFO 
installing scripts to build/bdist.linux-x86_64/egg/EGG-INFO/scripts 
running install_scripts 
running build_scripts 
creating build/bdist.linux-x86_64/egg/EGG-INFO/scripts 
copying build/scripts-2.7/abc_plugin.py -> build/bdist.linux-x86_64/egg/EGG-INFO/scripts 
changing mode of build/bdist.linux-x86_64/egg/EGG-INFO/scripts/abc_plugin.py to 775 
copying abcNewPlugin.egg-info/PKG-INFO -> build/bdist.linux-x86_64/egg/EGG-INFO 
copying abcNewPlugin.egg-info/SOURCES.txt -> build/bdist.linux-x86_64/egg/EGG-INFO 
copying abcNewPlugin.egg-info/dependency_links.txt -> build/bdist.linux-x86_64/egg/EGG-INFO 
copying abcNewPlugin.egg-info/entry_points.txt -> build/bdist.linux-x86_64/egg/EGG-INFO 
copying abcNewPlugin.egg-info/top_level.txt -> build/bdist.linux-x86_64/egg/EGG-INFO 
zip_safe flag not set; analyzing archive contents... 
creating 'dist/abcNewPlugin-0.0-py2.7.egg' and adding 'build/bdist.linux-x86_64/egg' to it 
removing 'build/bdist.linux-x86_64/egg' (and everything under it) 
Processing abcNewPlugin-0.0-py2.7.egg 
Removing /usr/local/lib/python2.7/dist-packages/abcNewPlugin-0.0-py2.7.egg 
Copying abcNewPlugin-0.0-py2.7.egg to /usr/local/lib/python2.7/dist-packages 
abcNewPlugin 0.0 is already the active version in easy-install.pth 
Installing abc_plugin.py script to /usr/local/bin 

Installed /usr/local/lib/python2.7/dist-packages/abcNewPlugin-0.0-py2.7.egg 
Processing dependencies for abcNewPlugin==0.0 
Finished processing dependencies for abcNewPlugin==0.0 

Gibt es eine Möglichkeit das geben Verzeichnis des Pakets in setuptools installieren? Ich versuchte --install-dir Option, aber es gibt einen Fehler:

$sudo python setup.py install --install-dir=/usr/lib/python2.7/dist-packages 
usage: setup.py [global_opts] cmd1 [cmd1_opts] [cmd2 [cmd2_opts] ...] 
    or: setup.py --help [cmd1 cmd2 ...] 
    or: setup.py --help-commands 
    or: setup.py cmd --help 

error: option --install-dir not recognized 

I --prefix Option nicht auch nutzen könnten.

Antwort

9

Da der python setup.py install Befehl nur eine Verknüpfung zu easy_install ist, versuchen Sie es direkt ausgeführt wird, hat es die --install-dir Option:

easy_install . --install-dir /usr/lib/python2.7/dist-packages 

Sie weitere Optionen mit python setup.py install -h bekommen können, falls Sie etwas mehr brauchen, aber Diese sind eher kryptisch.

+1

Auf python3 (zumindest) die Flagge ist jetzt '--prefix' statt' --install-dir' Sie auch das Ziel kann ** Benutzer-Site-Paket ** ('/home/user/.local/lib/python3.5/site-packages') mit '--user' – Nande

1

--install-lib setzt das Installationsverzeichnis für ein Modul

python setup.py install --install-lib /src/lib/ 
+0

Normalerweise ist es besser, eine Lösung zu erklären, anstatt nur einige anonyme Zeilen zu veröffentlichen Code. Sie können lesen [Wie schreibe ich eine gute Antwort] (https://stackoverflow.com/help/how-to-answer), und auch [Vollständig Code-basierte Antworten zu erklären] (https://meta.stackexchange.com/questions/114762/Erklären-ganz-% E2% 80% 8C% E2% 80% 8Bcode-basierte Antworten). Vielleicht können Sie angeben, WARUM Ihre Lösung funktioniert ... –