如何使用setuptools安装在自定义目录中?

Aks*_*235 10 python setuptools

我有一个Python包,我需要安装在/usr/lib/python2.7/dist-packages或任何其他特定目录中.

每当我运行setup.py脚本时,它都会提供以下输出:

root@abc44:~/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
Run Code Online (Sandbox Code Playgroud)

有没有办法指定包的安装目录setuptools?我试过--install-dir选项,但它给出了一个错误:

$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
Run Code Online (Sandbox Code Playgroud)

我也不能使用--prefix选项.

fam*_*kin 10

由于python setup.py install命令只是一个快捷方式easy_install,尝试直接运行它,它有以下--install-dir选项:

easy_install . --install-dir /usr/lib/python2.7/dist-packages
Run Code Online (Sandbox Code Playgroud)

python setup.py install -h如果您需要更多选项,您可以获得其他可用选项,但这些选项相当神秘.

  • 在python3(至少)上,标志现在是`--prefix`而不是`--install-dir`你也可以定位**用户site-package**('/ home/user/.local/lib/python3 .5/site-packages')使用`--user` (4认同)

Jon*_*han 7

--install-lib 设置模块的安装目录

python setup.py install --install-lib /src/lib/
Run Code Online (Sandbox Code Playgroud)