标签: packaging

如何创建一个python 2.x包 - 简单的情况

请展示为python 2.x创建python包的简单和最新标准方法

我希望稍后使用pip来安装软件包.

包应该包含一个类:

class hello:
  def greet(self):
    print "hello"
Run Code Online (Sandbox Code Playgroud)

之后应该可以执行以下操作:

pip install my_package-0.1.1....
Run Code Online (Sandbox Code Playgroud)

然后使用它:

from my_package import hello

h = hello.hello()
h.greet()
Run Code Online (Sandbox Code Playgroud)

我要的是:

  • 目录和文件布局
  • 文件的内容
  • 用于创建可分发包文件的命令
  • 命令从distributable包文件安装包(最好使用pip)

我找到了几个howtos,但我仍然不确定这个非常简单和剥离的情况(没有嵌套包,删除所有文件和功能,可以在最简单的情况下省略)将如何处理,这是现代的这样做的方式.

我希望这个问题进入社区维基状态,所以你不会得到任何积分,我会给出足够的时间,并在几天之后标记答案,同时考虑投票和评论.

编辑:

我有一个我要分享的第一个运行示例,我使用了Marius Gedminas的答案.它不包含应该存在的所有内容,但它有效,因此它可以展示技术过程的核心.要添加更多必要部件,请阅读下面的Marius的答案.

目录结构:

MyProject/
    setup.py
    my_package.py
    README.txt
    MANIFEST.in
Run Code Online (Sandbox Code Playgroud)

setup.py:

from setuptools.import setup
setup(name='MyProject',
      version='0.1',
      py_modules=['my_package'])
Run Code Online (Sandbox Code Playgroud)

my_package.py:

class hello:
  def greet(self):
    print "hello"
Run Code Online (Sandbox Code Playgroud)

MANIFEST.in:

include *.txt
Run Code Online (Sandbox Code Playgroud)

要从此文件夹创建包,请进入MyProject文件夹并运行:

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

这将MyProject-0.1.tar.gz在子文件夹中创建一个文件dist/.将此文件复制到目标计算机上的文件夹中.

在目标计算机上运行此命令,该文件夹包含MyProject-0.1.tar.gz:

sudo pip install MyProject-0.1.tar.gz
Run Code Online (Sandbox Code Playgroud)

现在可能需要在目标计算机上注销并重新登录,因此将找到该程序包.之后,您可以使用python shell在目标机器上测试包:

$ python
>>> import my_package …
Run Code Online (Sandbox Code Playgroud)

python packaging python-2.x

19
推荐指数
1
解决办法
6544
查看次数

从android apk文件解析versionCode

我知道.apk文件是.zip文件,但AndroidManifest.xml看起来是二进制的,当然grep或hex编辑器还没有成功提取versionCode.

有人知道如何解析或提取它吗?我发现自己在一个Python脚本中打开了apks AndroidManifest.xml文件.

android packaging android-manifest apk

19
推荐指数
2
解决办法
8090
查看次数

使用roxygen2记录数据集

我正在尝试使用roxygen2记录R包中的一些数据集.仅考虑其中一个:

  • 我有 mypkg/data/CpG.human.GRCh37.RDa
  • 其中包含一个名为的对象 CpG.human.GRCh37
  • 和一个名为:的文件mypkg/R/cpg-data.R,其中包含:

    #' @name CpG.human.GRCh37
    #' @title CpG islands - human - genome build: GRCh37/hg19
    #' @description This data set list the genomic locations of human CpG islands,
    #' with coordinates based on the GRCh37 / hg19 genome build.
    #' @docType data
    #' @usage CpG.human.GRCh37
    #' @format a \code{RangedData} instance, 1 row per CpG island.
    #' @source UCSC Table Browser
    #' @author Mark Cowley, 2012-03-05
    #' @export
    NULL
    
    Run Code Online (Sandbox Code Playgroud)

当我进行roxygenize时,会创建它mypkg/man/CpG.human.GRCh37.Rd,包含:

    \docType{data}
    \name{CpG.human.GRCh37}
    \alias{CpG.human.GRCh37} …
Run Code Online (Sandbox Code Playgroud)

packaging r rd roxygen2

19
推荐指数
1
解决办法
4009
查看次数

包含使用Pyinstaller的目录

Pyinstaller的所有文档都讨论了包含单个文件.是否可以包含目录,还是应该编写一个函数来遍历我的include目录来创建include数组?

python installation packaging include pyinstaller

19
推荐指数
5
解决办法
2万
查看次数

Icon.png问题(在顶级应用包装器下找不到Info.plist中指定的图标:Icon.png(-19007))

我正在整理一个通用应用程序,我的项目中有图标,但我不断收到编译器关于Icon.png的警告.

我按照http://developer.apple.com/library/ios/#qa/qa2010/qa1686.html上的说明操作,但仍然出现上述错误.

我尝试过以下方法:

将图标放在共享组中,并根据技术说明根据plist添加它们.更改图标路径以添加共享/指向它们以指向共享文件夹.

创建一个资源组(技术说明未指出XCode没有为通用应用程序创建资源组)并将它们移动到该组(我从plist中删除了"Shared /"前缀.)

将图标移动到项目的顶层.

我还仔细检查了图标大小,它们都是正确的,以及每个图标的名称.

我可能错过了什么?

icons packaging ios4

18
推荐指数
4
解决办法
2万
查看次数

Eclipse - 如何在整个项目中"将包声明更改为...."

我刚刚将大量的源代码导入Eclipse,基本上包名不再有效(代码已移动文件夹).有没有办法在Package Explorer中选择所有源代码并点击热键,以便为我正确解析所有包声明?我知道你可以通过选择源并点击ctl-shift-o来进行导入,但是也可以用于包声明吗?

更新: 重构包不起作用,因为我不想更改包的名称或位置,我只需要调整Java源代码中的包声明.

java eclipse packaging packages package

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

如何知道RPM中内置宏的价值?

如何在RPM中查看这些宏的值?我可以猜测%_bindir是/ usr/bin,%_ tmppaht是/ tmp,但是我如何准确地查看它的值并且它的值是否取决于系统?

%_prefix 
%_exec_prefix 
%_bindir 
%_sbindir 
%_libexecdir 
%_datadir 
%_sysconfdir 
%_sharedstatedir 
%_localstatedir 
%_libdir 
%_includedir 
%_oldincludedir o in
%_infodir 
%_mandir 
/usr 
%{_prefix) 
%{_exec_prefixl/bin 
%{_exec_prefix}/sbin 
%{_exec_prefix}/libexec 
%{_prefixJ/share 
%{_prefix}/etc 
%{_prefixJ/com 
%{_prefix}/var 
%{_exec_prefix}/lib 
%{_prefix}/include 
/usr/include 
%{_prefix}/info 
%{_prefixl/man 
Run Code Online (Sandbox Code Playgroud)

linux packaging rpm

18
推荐指数
2
解决办法
8274
查看次数

如何创建在每个发行版上运行的静态二进制文件?

一些Linux应用程序,如supertuxkart或regnum online,都有静态二进制文件,下载后只需工作而无需安装任何共享库.在每个发行版.我该如何制作这样的应用程序?

linux gcc packaging g++

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

在当前的Linux发行版上打包C++ 11软件是否安全?

作为Linux发行版中的下游维护者,我通常维护的一些软件包开始在其代码库中使用C++ 11特性.所有这些都依赖于Linux发行版打包的不同库.

将C++ 11代码与C++ 98和AFAIK混合时,可能会出现ABI问题,当编译软件生成包时,大多数当前主要的Linux发行版都默认不启用C++ 11标志.

问题是:主要的Linux发行版如何处理C++ 11代码的输入?在使用系统库时,是否有一种可靠的方法来检查或避免ABI的这些问题?

谢谢.

c++ packaging software-distribution abi c++11

17
推荐指数
1
解决办法
395
查看次数

PyPI 打包中的 src/ 文件夹是否有特殊含义或者只是一个约定?

我正在学习如何根据教程(https://packaging.python.org/en/latest/tutorials/packaging-projects/)为 PyPI 打包 Python 项目。对于示例项目,他们使用文件夹结构:

\n
packaging_tutorial/\n\xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 LICENSE\n\xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 pyproject.toml\n\xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 README.md\n\xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 src/\n\xe2\x94\x82   \xe2\x94\x94\xe2\x94\x80\xe2\x94\x80 example_package_YOUR_USERNAME_HERE/\n\xe2\x94\x82       \xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 __init__.py\n\xe2\x94\x82       \xe2\x94\x94\xe2\x94\x80\xe2\x94\x80 example.py\n\xe2\x94\x94\xe2\x94\x80\xe2\x94\x80 tests/\n
Run Code Online (Sandbox Code Playgroud)\n

我只是想知道为什么src/需要该文件夹?它有特定的目的吗?可以直接将包包含在顶部文件夹中吗?例如会

\n
packaging_tutorial/\n\xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 LICENSE\n\xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 pyproject.toml\n\xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 README.md\n\xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 example_package_YOUR_USERNAME_HERE/\n\xe2\x94\x82   \xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 __init__.py\n\xe2\x94\x82   \xe2\x94\x94\xe2\x94\x80\xe2\x94\x80 example.py\n\xe2\x94\x94\xe2\x94\x80\xe2\x94\x80 tests/\n
Run Code Online (Sandbox Code Playgroud)\n

有什么缺点或引起并发症吗?

\n

python packaging pypi

17
推荐指数
1
解决办法
3194
查看次数