标签: setuptools

在设置项目上下文中,选项“<项目名称> 中的本地化资源”和“<项目名称> 中的内容文件”是什么意思?

我正在为 Windows C# 应用程序创建一个设置项目。我理解“{项目名称}的主要输出”选项的含义。

但我明白“来自{项目名称}的本地化资源”和“来自{项目名称}的内容文件”选项的用途是什么。

这些本地化资源、内容文件是什么?

我想更详细地了解关于设置项目的这两个选项。任何人都可以让我知道这一点吗?

提前致谢。

c# visual-studio-2005 setuptools setup-project setup-deployment

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

列出命名空间包的所有子包

Python 具有创建命名空间包的能力。如何获取命名空间下已安装软件包的列表?

即类似:

import namespace_package
dir(namespace_pageage)
Run Code Online (Sandbox Code Playgroud)

python setuptools namespace-package

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

Scrapy-deploy 到 Scrapyd 不会安装 setup.py 中指出的要求

我有一个用Scrapy编写的项目。这个蜘蛛在setup.py中有很多要求。这是一个简单的例子。我跑

scrapyd-deploy
Run Code Online (Sandbox Code Playgroud)

并有以下输出

Packing version 1506254163
Deploying to project "quotesbot" in http://localhost:6800/addversion.json
Server response (200):
......................... [CUTTED TRACEBACK] ...........
\"/private/var/folders/xp/c949vlsd14q8xm__dv0dx8jh0000gn/T/quotesbot-1506254163-e50lmcfx.egg/quotesbot/spiders/toscrape-css.py\",
 line 4, in <module>\n
ModuleNotFoundError: No module named 'sqlalchemy'\n"}
Run Code Online (Sandbox Code Playgroud)

setup.py in the same directory:

# Automatically created by: scrapyd-deploy

from setuptools import setup, find_packages

setup(
    name         = 'quotesbot',
    version      = '1.0',
    packages     = find_packages(),
    entry_points = {'scrapy': ['settings = quotesbot.settings']},
    install_requires=[
        'scrapy-splash',
         [ SOME REQUIREMENTS]
        'sqlalchemy'
    ],
)
Run Code Online (Sandbox Code Playgroud)

python setuptools scrapy scrapyd

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

python setuptools:如何安装带有 cython 子模块的软件包?

我有一个名为pytools的 python 包。它包含一个基于 cython 的子模块nms

当我用 安装根包 pytools 时sudo python -H setup.py,根包似乎安装正确。

但是安装没有复制编译nms.so/usr/local/lib/python2.7/dist-packages/pytools/nms/.

而当我在 ipython 中导入 pytools 时,遇到了一个错误:

导入错误:无法导入名称 nms

如果我手动复制pytools/nms/nms.so/usr/local/lib/python2.7/dist-packages/pytools/nms/,问题就解决了。

这是我setup.py的根包:

import os
import numpy
from distutils.core import setup, Extension
from Cython.Build import cythonize

exec(open('pytools/version.py').read())
exts = [Extension(name='nms',
                  sources=["_nms.pyx", "nms.c"],
                  include_dirs=[numpy.get_include()])
        ]
setup(name='pytools',
  version=__version__,
  description='python tools',
  url='http://kaiz.xyz/pytools',
  author_email='zhaok1206@gmail.com',
  license='MIT',
  packages=['pytools', 'pytools.nms'],
  #packages=['pytools'],
  zip_safe=False
)
Run Code Online (Sandbox Code Playgroud)

setup.py子包nms

from distutils.core import setup, …
Run Code Online (Sandbox Code Playgroud)

python setuptools cython

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

读取 setup.cfg 配置时出现 Python setuptools AttributeError

我有以下setup.py文件:

import setuptools
import setuptools.config

_CONFIG = setuptools.config.read_configuration('setup.cfg')

setuptools.setup(
    **_CONFIG
    )
Run Code Online (Sandbox Code Playgroud)

...和setup.cfg文件:

[metadata]
name = Example
version = 1.0.0
author = First Last
author_email = first.last@example.com
home_page = https://www.github.com/firstlast/example
description = Example is an example project.
long_description = file: README.md
license_file = LICENSE
platform = any
keywords = example
classifiers =
  Programming Language :: Python
  Programming Language :: Python :: 2.7
  Programming Language :: Python :: 3.3
  Programming Language :: Python :: 3.4
  Programming Language :: …
Run Code Online (Sandbox Code Playgroud)

python setuptools

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

How to set entry point for console script with multiple command groups for Python Click?

Given that my library with foobar.py is setup as such:

\foobar.py
\foobar
    \__init__.py
\setup.py
Run Code Online (Sandbox Code Playgroud)

Hierarchy of CLI in the console script:

foobar.py
    \cli
         \foo
             \kungfu
             \kungpow
         \bar
             \blacksheep
             \haveyouanywool
Run Code Online (Sandbox Code Playgroud)

[code]:

import click

CONTEXT_SETTINGS = dict(help_option_names=['-h', '--help'])


@click.group()
@click.version_option()
def cli():
    pass

@cli.group(context_settings=CONTEXT_SETTINGS)
def foo():
    pass

@cli.group(context_settings=CONTEXT_SETTINGS)
def bar():
    pass

@foo.command('kungfu')
def kungfu():
    print('bruise lee')

@foo.command('kungpow')
def kungpow():
    print('chosen one')

@bar.command('blacksheep')
def blacksheep():
    print('bah bah blacksheep')

@bar.command('haveyouanywool')
def haveyouanywool():
    print('have you any wool?')
Run Code Online (Sandbox Code Playgroud)

How should I set my entry in setup.py …

python console command-line setuptools python-click

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

如何确定 PyPI 包中可用的模块

给定一个 PyPI 包名称,例如PyYAML,如何以编程方式确定包(分发包)中可以导入的可用模块?

细节

我对此并不是特别感兴趣PyYAML,它只是一个流行的 PyPI 包的一个很好的例子,它的包名称 ( PyYAML) 与其主模块名称 ( yaml) 不同,这样你就不能轻易地从包名称中猜出模块名称。

我见过其他听起来像这样但不同的问题的答案,可能是因为命名冲突

  • package表示允许模块集合的 python 结构
  • package的意思是“分发包”,是一个包含 Python 包、模块和其他用于分发版本的资源文件的存档文件。

我的问题是关于分发包和其中的模块之间的关系。

可能的解决方案空间

看起来可能富有成效的领域(但我尚未取得成功)是:

  • pydoc.help函数(作为help内置函数出现)在调用时输出所有可用模块的完整列表help('modules')。这显示了尚未导入但可以导入的模块。它以人类可读的形式输出到标准输出,我一直无法弄清楚代码pydoc是如何
    • 我可以想象调用它,收集模块列表,以编程方式使用 pip 将新的分发包安装到 virtualenv 中,再次调用它并比较结果。
  • 使用 pip 以编程方式安装分发包,以便
    • 遍历 python 路径的元素来查找模块

python module setuptools pypi python-packaging

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

如何创建带有 abi 标签的完整轮子?

尝试使用以下命令从空项目创建轮子setup.py

安装程序.py


from setuptools import setup
setup(name='bla', version='1')
Run Code Online (Sandbox Code Playgroud)

我调用python setup.py bdist_wheel --python-tag py35 --plat-name linux_x86_64并得到 bla-1-py35-none-linux_x86_64.whl

我的机器统计


python -V: Python 3.6.9
uname -p: x86_64
Run Code Online (Sandbox Code Playgroud)
  1. 如何执行abi?(使其成为bla-1-py35-cp35-linux_x86_64.whl
  2. 如何在我的 python 标签中决定 py35 和 cp35 之间?

python cpython abi setuptools python-wheel

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

test.pypi 上的模块无法安装依赖项,即使它们存在

我已经完成了这个小包,我想在我的社区中分发。它现在在 test.pypi 上,当我想尝试安装它时,它给出了找不到依赖项的错误。

设置文件

...
install_requires=[
    'defcon>=0.6.0',
    'fonttools>=3.31.0'
]
...
Run Code Online (Sandbox Code Playgroud)

抛出这个错误

ERROR: Could not find a version that satisfies the requirement defcon>=0.6.0 (from sameWidther==0.6) (from versions: none)
ERROR: No matching distribution found for defcon>=0.6.0 (from sameWidther==0.6)
Run Code Online (Sandbox Code Playgroud)

但是当我手动安装时,它可以工作

pip install 'fonttools>=3.6.0'
pip install 'defcon>=0.6.0'

Run Code Online (Sandbox Code Playgroud)

python setuptools pypi

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

包含和分发带有 Python C 扩展的第三方库

我正在构建一个使用“第三方”库的 C Python 扩展——在本例中,我使用单独的构建过程和工具链构建了一个。调用这个库libplumbus.dylib

目录结构为:

grumbo/
  include/
    plumbus.h
  lib/
    libplumbus.so
  grumbo.c
  setup.py
Run Code Online (Sandbox Code Playgroud)

我的setup.py样子大约是:

from setuptools import Extension, setup

native_module = Extension(
    'grumbo',
    define_macros = [('MAJOR_VERSION', '1'),
                     ('MINOR_VERSION', '0')],
    sources       = ['grumbo.c'],
    include_dirs  = ['include'],
    libraries     = ['plumbus'],
    library_dirs  = ['lib'])


setup(
    name = 'grumbo',
    version = '1.0',
    ext_modules = [native_module] )
Run Code Online (Sandbox Code Playgroud)

由于 libplumbus 是一个外部库,当我运行时,import grumbo我得到:

Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
ImportError: dlopen(/path/to/grumbo/grumbo.cpython-37m-darwin.so, 2): Library not loaded: lib/libplumbus.dylib
  Referenced …
Run Code Online (Sandbox Code Playgroud)

c python setuptools python-c-api python-extensions

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