【问题标题】:Can Python setuptools install files outside dist-packages?Python setuptools 可以在 dist-packages 之外安装文件吗?
【发布时间】:2016-08-19 04:18:54
【问题描述】:

实际上是否可以使用 setuptools 将 sdist 中的数据文件安装到 sys.prefix 目录之外的任意位置?

documentation 暗示可以这样做,在 data_files 目录 部分中使用绝对路径,但实际上前导斜杠似乎被忽略了。

例如data_files=[('/opt/foo/bar', [...])],文件应该安装到目录/opt/foo/bar。但是它们都在 /usr/local/lib/python3.4/dist-packages/opt/foo/bar 中,这对人和野兽都没有用。

我怀疑它曾经可以工作 - 它最近是否被更改/损坏?

(使用 pip 8.1.1、Python 3.4、setuptools 20.9.0)

【问题讨论】:

    标签: python python-3.x setuptools


    【解决方案1】:

    最好的办法是用您自己的cmdclass 覆盖install 并自己移动文件。

    【讨论】:

      【解决方案2】:

      啊,都是pip的错。给定一个 sdist,pip 在安装之前会创建一个 wheel。但是轮子can't install files outside dist-packages

      幸运的是,您可以通过抛出一个错误来使 pip 变得有意义,使其回退到安装您一开始想要的 sdist

      # in setup.py
      if 'bdist_wheel' in sys.argv:
          raise RuntimeError("This setup.py does not support wheels") 
      

      (感谢本杰明·巴赫)

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2012-12-03
        • 2021-02-04
        • 2019-02-05
        • 1970-01-01
        • 2013-08-30
        • 2013-12-05
        • 2020-05-28
        • 2020-06-04
        相关资源
        最近更新 更多