将python setup.py安装到备用路径中找不到已安装的软件包

问题描述 投票:4回答:2

我有一个测试设置文件,我为一个简单的“hello world”脚本。我有一个名为mytest的包,它有一个函数hello。现在,我有一个非常简单的setup.py。一切正常,如果我只是运行python setup.py install。但是,如果我想将lib安装到主文件夹(python setup.py install --home=/home/blah),该软件包将不再可用(在python中运行import mytest给我ImportError: No module named mytest)。

我应该手动将pth文件添加到site-packages文件夹中吗?我尝试了(内容/home/blah/lib/python,我的包放在哪里)和导入mytest工作正常。不应该自动完成吗?还是我错过了什么?

编辑:

安装输出:

ago@dellbert:~/py/mytest-0.1$ python setup.py install --home=/home/ago/py/
running install
running build
running build_py
copying src/mytest/mytest.py -> build/lib.linux-x86_64-2.6/mytest
running build_scripts
copying and adjusting src/main.py -> build/scripts-2.6
running install_lib
copying build/lib.linux-x86_64-2.6/mytest/mytest.py -> /home/ago/py//lib/python/mytest
byte-compiling /home/ago/py//lib/python/mytest/mytest.py to mytest.pyc
running install_scripts
copying build/scripts-2.6/main.py -> /home/ago/py//bin
changing mode of /home/ago/py//bin/main.py to 755
running install_egg_info
Removing /home/ago/py//lib/python/mytest-0.1.egg-info
Writing /home/ago/py//lib/python/mytest-0.1.egg-info

和setup.py:

from distutils.core import setup

setup(name='mytest',
      description='test',
      author='Ago',
      author_email='email',
      version='0.1',
      package_dir={'mytest': 'src/mytest'},
      packages=['mytest'],
      scripts=['src/main.py']
      )

文件夹结构:

-src:
   -mytest:
       __init__.py
       mytest.py
    main.py
setup.py

main.py只是一个可执行文件,它导入mytest并调用函数来打印hello world。但我试图在python中运行import mytest来查看是否安装了lib。

python install importerror setup.py
2个回答
3
投票

我有兴趣看到python setup.py install --home=/home/blah命令的完整输出。如果目录不存在,或者不支持pth文件,您应该得到某种警告或错误,我相信安装实际上会失败。

查看setup.py文件也会有所帮助,因为它可能会把东西放在那里会导致破坏。


0
投票

似乎python至少统一了Unix和Windows环境中的参数。看看今天的python参考(https://docs.python.org/2/install/index.html,2017年12月),它表明在两个操作系统中你都可以使用--prefix=<head installation path>。看一下参考文献,"Alternate installation: Unix (the prefix scheme)""Alternate installation: Windows (the prefix scheme)"。我刚刚使用Oct2Py(Octave-to-Python转换器)对它进行了测试,这与使用easy_install或pip进行安装很麻烦,但是这样做的工作非常好。

然后你的python包(假设你使用Python 2.7)<head installation path>/lib/python2.7/site-packages<head installation path>/lib/python2.7/dist-packages

© www.soinside.com 2019 - 2024. All rights reserved.