Python setuptools可以在dist-packages之外安装文件吗?

时间:2016-04-25 16:36:49

标签: python python-3.x setuptools

是否可以实际使用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)

2 个答案:

答案 0 :(得分:1)

最好的办法是用您自己的cmdclass覆盖<?php $json = $_POST['data']; /* sanity check */ if (json_decode($json) != null) { $file = fopen('myData.json','w+'); fwrite($file, $json); fclose($file); } else { // user has posted invalid JSON, handle the error } ?> 并自行移动文件。

答案 1 :(得分:1)

啊,这是所有人的错。给定 sdist ,pip在安装之前有助于创建 wheel 。但轮子can't install files outside dist-packages

幸运的是,你可以通过查看错误来解决问题,导致它回到首先安装你想要的 sdist

dataLayer.push({
  "event": "addToCart",
  "ecommerce": {
    "currencyCode": "USD",
    "add": {
      "products": [{
        "id": "b55da",
        "name": "Flexigen T-Shirt",
        "price": "16.00",
        "brand": "Flexigen",
        "category": "T-Shirts",
        "variant": "red",
        "dimension1": "M",
        "position": 0,
        "quantity": 1
      }]
    }
  }
});

(感谢Benjamin Bach)