相关疑难解决方法(0)

从setuptools包中排除顶级目录

我正在尝试使用setuptools将Python项目放入tarball中.问题是setuptools似乎不喜欢源树最初设置的方式(不是我,我必须添加).我实际想要分发的所有内容都在顶级目录中,而不是像setuptools docs谈论的子目录中那样.

树有一个目录,tests我不想在已发布的包中拥有该目录.然而,使用exclude_package_data似乎并没有实际排除,我想弄清楚我做错了什么.

setup.py看起来像这样,在相关部分:

setup(
  name="project",
  packages=[''],
  include_package_data=True,
  exclude_package_data={'': ['tests']},
  test_suite='nose.collector',
)
Run Code Online (Sandbox Code Playgroud)

python setuptools

23
推荐指数
6
解决办法
2万
查看次数

setuptools麻烦 - 不包括包,包括数据文件

我对setuptools很新.我已经看到了一些类似的问题,它有点疯狂,我似乎遵循我看到的建议,但setuptools仍然做了一些不同于我想要的东西.

这是我的项目的结构:

.
..
package1/
    __init__.py
    abc.py
    ...
tests/
    __init__.py
    test_package1.py
LICENSE
README.md
RELEASE
setup.py
Run Code Online (Sandbox Code Playgroud)

这是我的setup.py的内容:

#!/usr/bin/env python
import os
#from distutils.core import setup
from setuptools import setup, find_packages

setup(
    name='package1',
    version='1.1',
    test_suite="tests",
    packages=find_packages(exclude=['tests']),    
    include_package_data=True,
    package_data = {
        '': ['LICENSE', 'README.md5', 'RELEASE']
    },   
)
Run Code Online (Sandbox Code Playgroud)

另外,在我的清单文件中,我有:

include LICENSE
include RELEASE
include README.md
Run Code Online (Sandbox Code Playgroud)

我用以下内容构建tar:

python setup.py sdist
Run Code Online (Sandbox Code Playgroud)

我想要:

  1. tests从源代码分发中排除目录;
  2. 在site-packages目录中有LICENSE,README.md,RELEASE文件,可以在顶层,也可以在package1目录中(此时我同意).

相反,这是发生的事情:

  1. tests 目录仍然在创建的tar存档中,并安装到site-packages;
  2. 文件将复制到存档,但不会安装到程序包的站点打包目录中.

我没有想法,有人可以向我解释我做错了什么以及如何解决它?

python configuration setuptools

21
推荐指数
3
解决办法
1万
查看次数

标签 统计

python ×2

setuptools ×2

configuration ×1