我怎么能包括package_data
为sdist
没有MANIFEST.in文件?
我的setup.py看起来像这样:
import setuptools
setuptools.setup(
name='foo',
version='2015.3',
license='commercial',
packages=setuptools.find_packages(),
package_data={'': ['foo/bar.txt']},
)
版本:
user@host> python
Python 2.7.6 (default, Mar 22 2014, 22:59:56)
>>> import setuptools
>>> setuptools.version.__version__
'3.6'
我就是无法foo/bar.txt
加入。
还是此博客文章仍然正确?
http://blog.codekills.net/2011/07/15/lies,-more-lies-and-python-packaging-
documentation-on–
package_data-/
不过,在过去的一个小时中,我了解到这些陈述介于“危险误导”和“该死的谎言”之间。
这是因为Python包的主要类型是源包,而使用来创建源包的规范方法setup.py sdist
。但是,package_data中指定的数据不包括在源发行版中,它们仅包括在二进制(setup.py bdist
)发行版和安装(setup.py install
)中。
我怎么能包括package_data
为sdist
没有MANIFEST.in文件?
TL; DR :package_data
字典中的键是 包 ;值是glob列表。''
不是任何Python软件包的有效名称。
如果要bar.txt
安装在__init__.py
软件包的旁边foo
,请使用
package_data={'foo': ['bar.txt']}
我有布局:
foo/
__init__.py
bar.txt
setup.py
现在,如果foo
是上述软件包,请执行以下操作:
import setuptools
setuptools.setup(
name='foo',
version='2015.3',
license='commercial',
packages=setuptools.find_packages(),
package_data={'foo': ['bar.txt']},
)
之后python setup.py sdist
,我检查dist/foo-2015.3.tar.gz
% tar tfz dist/foo-2015.3.tar.gz
...
foo-2015.3/foo/bar.txt
...
但是,如果我跑你setup.py
有package_data={'': ['foo/bar.txt']}
,我也同意了foo/bar.txt
将
不会 被添加到源代码分发, 除非这个foo-2015.3.egg- info/SOURCES.txt
已经有行foo/bar.txt
-在这种情况下,该文件将在源分布弹出太
没有使用清单。setuptools版本是3.6
(我故意安装了与您使用的相同的旧版本):
>>> import setuptools
>>> setuptools.__version__
'3.6'
上面的行为在标准中也起作用distutils
:2.6安装“旧版”
distutils文档的软件包数据;带有2.7、3.1的注释:
Changed in version [2.7, 3.1] : All the files that match
package_data
will be added to theMANIFEST
file if no template is provided.
我正在开发一个需要执行JavaScript的Java应用程序。Nashorn JS引擎即将被弃用,取而代之的是Graal SDK提供的一组API,它利用了GraalVM。基本上执行多种语言的虚拟机。 至少我是这么想的。所以我花了一天时间试图让它工作。我下载了使用JDK 8的GraalVM rc6。我使用IntelliJ IDEA并将GraalVM添加为新的JDK。我发现我应该添加虚拟机作为开发工具
问题内容: 我正在尝试附加在没有日志文件的SQL Server Management Studio中。 我得到下面的错误。任何想法如何做到这一点? 执行Transact-SQL语句或批处理时发生异常。 (Microsoft.SqlServer.ConnectionInfo) 无法打开物理文件“ C:\ sql_logs \ YAFnet_log.ldf”。 操作系统错误2:“ 2(系统找不到指定的
我正在尝试安装一个没有依赖项的python模块。 我跑: 但是这个安装依赖项,任何想法怎么能做到这一点?
我使用了,但对于当前的问题,它没有帮助。我希望能够创建特定于项目的包: 我尝试了多种方法,但如何获得
我想使用POST动词在带有flask restplus的VM上执行操作,但当没有主体时,它总是导致400。 结果是400{“消息”:“浏览器(或代理)发送了一个此服务器无法理解的请求。” 如果我只是简单地从post转换为get,它就可以正常工作。但是,我真的想使用POST动词,因为这是我需要遵循的标准动词,用于自定义非CRUD操作。我有没有用flask restplus把自己画到角落里? 注意:对
问题内容: 我正在使用/ /在Mac OS X上进行一些研究计算。为了提高性能,我们从大学租了一个400节点的集群(使用Linux),以便可以并行完成任务。问题是我们不允许在集群上安装任何额外的软件包(否或任何安装工具),它们仅提供原始python本身。 然后如何在群集上运行脚本?有没有办法集成模块(我认为numpy和scipy也具有一些已编译的二进制文件),以便可以在不安装软件包的情况下进行解释