我正在为 Windows C# 应用程序创建一个设置项目。我理解“{项目名称}的主要输出”选项的含义。
但我不明白“来自{项目名称}的本地化资源”和“来自{项目名称}的内容文件”选项的用途是什么。
这些本地化资源、内容文件是什么?
我想更详细地了解关于设置项目的这两个选项。任何人都可以让我知道这一点吗?
提前致谢。
c# visual-studio-2005 setuptools setup-project setup-deployment
Python 具有创建命名空间包的能力。如何获取命名空间下已安装软件包的列表?
即类似:
import namespace_package
dir(namespace_pageage)
Run Code Online (Sandbox Code Playgroud) 我有一个用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) 我有一个名为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) 我有以下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) 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)
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 …
给定一个 PyPI 包名称,例如PyYAML,如何以编程方式确定包(分发包)中可以导入的可用模块?
我对此并不是特别感兴趣PyYAML,它只是一个流行的 PyPI 包的一个很好的例子,它的包名称 ( PyYAML) 与其主模块名称 ( yaml) 不同,这样你就不能轻易地从包名称中猜出模块名称。
我见过其他听起来像这样但不同的问题的答案,可能是因为命名冲突
我的问题是关于分发包和其中的模块之间的关系。
看起来可能富有成效的领域(但我尚未取得成功)是:
pydoc.help函数(作为help内置函数出现)在调用时输出所有可用模块的完整列表help('modules')。这显示了尚未导入但可以导入的模块。它以人类可读的形式输出到标准输出,我一直无法弄清楚代码pydoc是如何
。
尝试使用以下命令从空项目创建轮子setup.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)
我已经完成了这个小包,我想在我的社区中分发。它现在在 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) 我正在构建一个使用“第三方”库的 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) setuptools ×10
python ×9
pypi ×2
abi ×1
c ×1
c# ×1
command-line ×1
console ×1
cpython ×1
cython ×1
module ×1
python-c-api ×1
python-click ×1
python-wheel ×1
scrapy ×1
scrapyd ×1