请展示为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)
我要的是:
我找到了几个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) 我知道.apk文件是.zip文件,但AndroidManifest.xml看起来是二进制的,当然grep或hex编辑器还没有成功提取versionCode.
有人知道如何解析或提取它吗?我发现自己在一个Python脚本中打开了apks AndroidManifest.xml文件.
我正在尝试使用roxygen2记录R包中的一些数据集.仅考虑其中一个:
mypkg/data/CpG.human.GRCh37.RDaCpG.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) Pyinstaller的所有文档都讨论了包含单个文件.是否可以包含目录,还是应该编写一个函数来遍历我的include目录来创建include数组?
我正在整理一个通用应用程序,我的项目中有图标,但我不断收到编译器关于Icon.png的警告.
我按照http://developer.apple.com/library/ios/#qa/qa2010/qa1686.html上的说明操作,但仍然出现上述错误.
我尝试过以下方法:
将图标放在共享组中,并根据技术说明根据plist添加它们.更改图标路径以添加共享/指向它们以指向共享文件夹.
创建一个资源组(技术说明未指出XCode没有为通用应用程序创建资源组)并将它们移动到该组(我从plist中删除了"Shared /"前缀.)
将图标移动到项目的顶层.
我还仔细检查了图标大小,它们都是正确的,以及每个图标的名称.
我可能错过了什么?
我刚刚将大量的源代码导入Eclipse,基本上包名不再有效(代码已移动文件夹).有没有办法在Package Explorer中选择所有源代码并点击热键,以便为我正确解析所有包声明?我知道你可以通过选择源并点击ctl-shift-o来进行导入,但是也可以用于包声明吗?
更新: 重构包不起作用,因为我不想更改包的名称或位置,我只需要调整Java源代码中的包声明.
如何在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应用程序,如supertuxkart或regnum online,都有静态二进制文件,下载后只需工作而无需安装任何共享库.在每个发行版.我该如何制作这样的应用程序?
作为Linux发行版中的下游维护者,我通常维护的一些软件包开始在其代码库中使用C++ 11特性.所有这些都依赖于Linux发行版打包的不同库.
将C++ 11代码与C++ 98和AFAIK混合时,可能会出现ABI问题,当编译软件生成包时,大多数当前主要的Linux发行版都默认不启用C++ 11标志.
问题是:主要的Linux发行版如何处理C++ 11代码的输入?在使用系统库时,是否有一种可靠的方法来检查或避免ABI的这些问题?
谢谢.
我正在学习如何根据教程(https://packaging.python.org/en/latest/tutorials/packaging-projects/)为 PyPI 打包 Python 项目。对于示例项目,他们使用文件夹结构:
\npackaging_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/\nRun Code Online (Sandbox Code Playgroud)\n我只是想知道为什么src/需要该文件夹?它有特定的目的吗?可以直接将包包含在顶部文件夹中吗?例如会
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/\nRun Code Online (Sandbox Code Playgroud)\n有什么缺点或引起并发症吗?
\n