生成密码

generate_password的Python项目详细描述


这是python版本2.6.2
============================ < BR>
版权所有(c)2001、2002、2003、2004、2005、2006、2007、2008、2009 Byth/Python软件基金会。
保留所有权利。 < BR>
版权所有(c)2000 beopen.com。
保留所有权利。 < BR>
版权所有(c)1995-2001国家研究计划公司。
保留所有权利。 < BR>
版权所有(c)1991-1995 Stichting Mathematisch Centrum。
保留所有权利。 < BR>< BR>
许可证信息
------ < BR>
请参阅"许可证"文件,以获取有关此历史记录的信息
软件、使用条款和条件,以及
保证。 < BR>
此python发行版不包含gnu通用公共许可
(gpled)代码,因此它可以像以前一样用于专有项目
python发行版。有些GNU代码有接口,但是
完全可选。 < BR>
此处引用的所有商标均为其各自的财产
支架。 < BR>< BR>
这个版本有什么新功能?
- < BR>
请参阅文件"misc/news"。 < BR>< BR>
如果您不阅读说明
-------- < BR>
恭喜你取得了这一成就。-) < BR>
要立即开始构建(在UNIX上):在
当前目录,完成后,键入"make"。这将创建
可执行"../python";要在/usr/local中安装,请首先执行"su root"
然后"进行安装"。 < BR>
建议阅读下面的"构建说明"部分。 < BR>< BR>
什么是python?
< BR>
python是一种解释性的、交互式的面向对象编程
适用于(除其他用途外)分布式应用程序的语言
开发、脚本、数字计算和系统测试。蟒蛇
通常与TCL、Perl、Java、JavaScript、Visual Basic或
方案。为了进一步了解python可以为您做什么,请指出
浏览http://www.python.org/。 < BR>< BR>
如何学习python?
< BR>
官方教程仍然是一个很好的开始;请参见
http://docs.python.org/在线和可下载版本
作为其他介绍和参考文档的列表。 < BR>
关于python的书越来越多。见
http://wiki.python.org/moin/pythonbooks获取列表。 < BR>< BR>
文档
---- < BR>
所有文档都以各种格式在线提供。在
对新用户的重要性顺序:教程、库参考,
语言引用、扩展和嵌入以及python/c api。这个
图书馆参考资料尤其具有巨大的价值,因为
这里描述了python的强大功能,包括内置的数据类型
和功能! < BR>
所有文档也可以在python网站上在线获得
(http://docs.python.org/,见下文)。偶尔在网上可以买到
参考,或可以多种格式下载,以加快访问速度。这个
可下载HTML、Postscript、PDF、LaTex和
RestructuredText(2.6+)格式;LaTex和RestructuredText版本是
主要面向文档作者、翻译人员和具有特殊
格式要求。 < BR>< BR>
网站
--- < BR>
新的python版本和相关技术发布于
http://www.python.org/。快来看我们! < BR>
还有一个python社区网站
http://starship.python.net/。 < BR>< BR>
新闻组和邮件列表
-- < BR>
阅读comp.lang.python,一个关于
python,或comp.lang.python.announce,一个低容量的主持新闻组
有关python的公告。这些也是可访问的竹叶提取物
邮件列表:有关
概述这些和许多其他与python相关的邮件列表。 < BR>
可通过google groups usenet archive访问存档;请参见
http://groups.google.com/。邮件列表也已存档,请参见
有关详细信息,请访问http://www.python.org/community/lists.html。 < BR>< BR>
错误报告
----- < BR>
要报告或搜索错误,请使用python错误
追踪器,网址:http://bugs.python.org。 < BR>< BR>
修补程序和贡献
--- < BR>
若要提交修补程序或其他贡献,请使用python修补程序
http://bugs.python.org的经理。指南
有关提交修补程序的信息,请访问http://www.python.org/dev/patches/。 < BR>
如果您有更改python的建议,您可以向
comp.lang.python或python ideas初始反馈邮件列表。蟒蛇
如果您的想法获得支持,可能会提交增强建议(PEP)。所有
当前政治公众人物,以及提交新政治公众人物的指南,列在
http://www.python.org/dev/peps/。 < BR>< BR>
问题
--- < BR>
要获得帮助,如果在手册或网站上找不到,可以
最好发送到comp.lang.python或python邮件列表(请参见
以上)。如果你不想让新闻组介入
邮件列表,发送问题至help@python.org(一组志愿者
尽可能回答问题)。新闻组是
问公众问题的有效方法。 < BR>< BR>
构建说明
================== < BR>
在构建python之前,必须先对其进行配置。
幸运的是,配置和构建过程已经自动化
对于Unix和Linux安装,您通常需要做的就是
键入几个命令,然后坐下来。有些平台
事情并没有那么顺利;请参阅下面的特定于平台的注释。
如果要为共享同一源的多个平台构建
树,请参阅下面有关vpath的部分。 < BR>
首先运行脚本"./configure",该脚本决定
系统配置并创建生成文件。(需要一分钟或
两个——请耐心等待!)您可能希望将选项传递给
配置脚本——请参阅下面关于配置选项和
变量。完成后,您就可以运行make了。 < BR>
要构建python,通常在顶层目录中键入"make"。
如果更改了配置,则makefile可能必须
重建。在这种情况下,您可能需要再次运行make才能正确运行
建立你想要的目标。解释器可执行文件构建在
顶级目录。 < BR>
一旦构建了python解释器,请参阅下面关于
测试和安装。如果你遇到麻烦,看下一个
部分。 < BR>
以前版本的python使用的手动配置过程
涉及编辑文件模块/设置。当这个文件仍然存在时
仍然支持手动配置,很少需要任何
更多:几乎所有模块都在
setup.py脚本的指导,该脚本由make在
已构建解释器。 < BR>< BR>
故障排除
------ < BR>
另请参见下一节中特定于平台的说明。 < BR>
如果遇到其他问题,请参阅常见问题解答
(http://www.python.org/doc/faq)了解可能出错的提示,以及
如何修复。 < BR>
如果使用不同的选项重新运行配置脚本,请全部删除
通过在重建之前运行"make clean"来创建对象文件。信不信由你
不,"清洁"有时有助于清理其他难以解释的
还有问题。在发送错误报告之前请尝试! < BR>
如果gure脚本失败或似乎找不到
应该在那里,检查config.log文件。 < BR>
如果每个文件都收到关于-olimit选项为no的警告
支持时间越长,您可以忽略它。没有万无一失的方法知道
是否需要此选项;我们只能测试它是否
无误接受。在一些系统上,例如旧的sgi编译器,它
对于性能至关重要(特别是在编译ceval.c时,
其基本块数超过默认限制1000)。如果
警告会让您不安,请编辑makefile以从中删除"-olimit 1500"
opt变量。 < BR>
如果在test_long中失败,或者sys.maxint设置为-1,则
可能遇到编译器错误,通常与
优化。这是一些gcc版本的常见问题,并且
一些供应商提供的编译器,有时可以使用
关闭优化。考虑切换到稳定版本
(合同一般条件2.95.2,合同一般条件3.x,或与供应商联系。) < BR>
从Python2.0开始,所有PythonC代码都是ANSI C。
旧的仅限k&r-c的编译器不再可能。ANSI C编译器是
可用于所有现代系统,或以更新的形式
来自供应商的编译器,或一个免费编译器(gcc)。 < BR>
如果"make install"在"编译库"过程中神秘失败
步骤,确保您没有任何蟒蛇或蟒蛇洞
设置环境变量,因为它们可能会干扰新建的
编译库的可执行文件。 < BR>
不支持的系统
------ < BR>
Python2.5不再支持许多特性。一些
支持代码仍然存在,但将在Python2.6中删除。
如果您仍然需要在这些系统上使用当前的python版本,
请发送邮件至python-dev@python.org,表明您
自愿支持该系统。进行更详细的讨论
关于不再支持和再支持的平台,以及
作为不受支持或将不受支持的平台列表,请参见PEP 11。 < BR>
更具体地说,以下系统不支持任何
更长:
-Sunos 4号 dBR/> -DYNIX
-DUGX 迷你版 BR/>下一步
-irix 4和——带sgi dl
-Linux 1
-定义pThread创建(configure.in)的系统
-定义py_pthread_d4、py_pthread_d6的系统,
或py_pthread_d7 in thread_pthread.h
-使用--with dl dld的系统
-使用--不使用通用换行符的系统
-MacOS 9 < BR>
Python2.5仍然支持以下系统,但是
将在2.6中放弃支持:
-使用--with wctype函数的系统
-win9x,winme公司 < BR>
在Windows 98和Windows Me中安装时出现警告
——--- < BR>
在微软关闭对
Windows98/ME(2006年7月11日),Python2.6将停止
支持这些平台。python开发和

针对用户较少的操作系统的平台特定代码
没有专门的专家开发人员。这个
供应商还警告说,上面列出的操作系统版本
"可能使客户面临安全风险",并建议
升级。 < BR>
特定于平台的注释
- < BR>
(其中一些可能不再适用。如果您发现可以构建python
在这些平台上,没有这里提到的特殊指示,
向SourceForge提交文档错误报告(请参阅错误报告
以上)以便我们可以删除它们!) < BR>
unix平台:如果您的供应商仍然提供(并且您仍然使用)berkeley db
1.85您需要编辑模块/设置来构建bsddb185
模块并向sitecustimize.py添加一行,使它
默认值。在模块中/设置一行 < BR>
bsddb185 bsddbmodule.c < BR>
应该有用。(您可能需要添加-i、-l或-l标志来指示
编译器和指向包含文件和库的链接器。) < BR>
xxx我认为下一位已经过时: < BR>
64位平台:audioop和imageop模块不工作。
setup.py脚本在64位安装时禁用它们。
不要试图在模块/设置文件中启用它们。他们
包含对字长非常敏感的代码。(如果你有
修复,让我们知道!) < BR>
solaris:当使用带有线程的sun的c编译器时,至少在solaris上是这样
2.5.1,您需要添加"-mt"编译器选项(最简单的
方法可能是使用此选项将编译器指定为
运行configure时的"cc"环境变量
脚本)。 < BR>
在solaris上使用gcc时,请注意binutils 2.13或gcc
使用它构建的版本。这错误地使
-zcombreloc选项,它在
solaris。Binutils 2.12工程,以及Binutils维护人员
意识到问题所在。Binutils 2.13.1仅部分
固定的东西。看来2.13.2解决了这个问题
完全正确。已知在solaris 2.7中会出现此问题
和2.8,但也可能影响
操作系统。 < BR>
当动态加载程序抱怨发现共享的错误时
库,例如 < BR>
ld.so.1:./python:致命:libstdc++.so.5:打开失败:
没有这样的文件或目录 < BR>
您需要首先确保库在
您的系统。然后,您需要指示动态加载程序如何
找到它。您可以选择以下任一策略: < BR>
1.编译python时,将ld_run_path设置为目录
包含缺少的库。
2.运行python时,将ld_library_path设置为这些目录。
3.使用crle(8)扩展加载程序的搜索路径。
4.修改已安装的gcc specs文件,将-r选项添加到
*链接:部分。 < BR>
复杂对象无法在带有gcc 3.4的solaris 10上编译(位于
至少3.4.3)。要解决这个问题,请将py_great_val定义为
巨大的值(),例如: < BR>
使cppflags='-d"py_huge_val=huge_val()"-i.-i$(srcdir)/include'
./python setup.py cppflags='-d"py_huge_val=huge_val()" < BR>
Linux:线程和fork()的问题被跟踪到
glibc版本2.0.5;glibc版本2.0.7中的pthreads代码
解决问题。这导致popen2测试失败;
Pablo Bleyer报告的问题和解决方案。 < BR>
red hat linux:red hat 9在ucs-4模式下构建python2.2并进行黑客攻击
TCL支持它。要用Tkinter编译python2.3,您将
需要将--enable unicode=ucs4标志传递给./configure。 < BR>
有一个可执行文件/usr/bin/python,它是python
1.5.2在大多数较旧的Red Hat安装上;几个关键的Red Hat工具
需要此版本。python 2.1.x可以安装为
/usr/bin/python2。makefile将python安装为
/usr/local/bin/python,可能优先,也可能不优先
over/usr/bin/python,具体取决于如何设置$path。 < BR>
FreeBSD 3.x以及可能带有使用libmytinfo或
类似:使用cursesmodule时,链接不在
具有默认值的正确顺序。从中删除"-ltermacp"
安装程序中的readline项,并用作curses项:"诅咒
cursesmodule.c-lmytinfo-lncurses-ltemcap"-"mytinfo"(所以
在freebsd上调用)应该是辅助库的名称
在您的平台上是必需的。通常,它会被连接起来
自动执行,但不一定按正确顺序执行。 < BR>
bsdi:4.1之前的bsdi版本存在已知的线程问题,
这会导致一些模块中出现奇怪的错误(对于
实例,"test_signal"测试脚本将永远挂起。)
关闭线程(使用--with threads=no)或升级到
bsdi 4.1解决了这个问题。 < BR>
dec unix:使用--with dec线程运行configure,或使用
--如果不需要线程(线程由
默认值)。当使用gcc时,可以获得
如果使用优化,则编译器错误。这是因为
gcc 2.7.2.3 on selectmodule.c.手动编译受影响的
无需优化即可解决问题的文件。 < BR>
dec ultrix:使用gcc编译以避免本机编译器中的错误,
并在安装时将shell=/bin/sh5传递给make。 < BR>
aix:对共享库支持的全面检查现在正在进行
地点。请参阅misc/aix-notes,了解有关如何完成此任务的一些说明。
(以前版本中在此处报告的优化器错误
只需对代码进行最小程度的更改。
关于pthread\ux函数的错误,在编译期间或在
测试时,尝试将cc设置为线程安全(可重入)编译器,
就像"抄送"。对于完整的C++模块支持,设置cc="xLcjr"(或
cc="xlc"无螺纹支撑)。 < BR>
AIX5.3:要使用IBM编译器构建64位版本,我使用
如下: < BR>
导出路径=/usr/bin:/usr/vacpp/bin
./configure--with gcc="xlc_r-q64"--with cxx="xlc_r-q64"\
--禁用-ipv6 ar="ar-x64"
品牌 < BR>
HP-UX:使用线程时,可能需要将-d\u reentrant添加到
顶级makefile中的opt变量;由pat knight报告,
这似乎会有所不同(至少对于HP-UX 10.20)
即使pyconfig.h定义了它。当
使用HP/UX 11及更高版本-线程似乎可以"脱离
盒子。 < BR>
HP-UX IA64:使用HP的
编译器,一些经验表明
优化程序生成一个完全崩溃的python版本
(见http://www.python.org/sf/814976)。为了解决这个问题,
编辑makefile并从opt行中删除-o。 < BR>
使用HP的
编译器,使用以下环境变量: < BR>
cc=cc
cxx=acc
基标志="+dd64"
ldflags="+dd64-lxnet" < BR>
并调用configure as: < BR>
./configure——不带gcc < BR>
然后*重新设置*环境变量,然后再运行
品牌。(至少其中一个标志会导致生成失败
如果设置不变。)您仍然需要编辑makefile并
从opt行中删除-o。 < BR>
HP PA-RISC 2.0:最新的错误报告(http://www.python.org/sf/546117)
提示此64位系统中的C编译器存在错误
在打破python的优化器中。编译时不使用
优化解决了这些问题。 < BR>
sco:以下内容仅适用于sco 3;python是现成的
关于上合组织5(或者我们已经听说过)。 < BR>
1)如果在
定义。这是因为艾尔上合组织的头文件坏了。
C标准中未提及的任何内容都是
定义stdc时有条件排除。 < BR>
2)由于美国出口限制,上海合作组织打破了秘密
把东西放到一个单独的库libcrypt
需要设置为: < BR>
libs='-lsocket-lcrypt_i' < BR>
unixware:系统的数学库中存在已知的错误,以及
线程处理中的问题(调用fork-in-one
线程可能会中断其他线程中的系统调用)。因此,测试数学和
在解决这些问题之前,涉及线程的测试将失败。 < BR>
qnx:chris herborth(chrish@qnx.com)写道:
如果您使用gnu bash,configure最有效;在
ftp.qnx.com在/usr/free中。我使用了以下过程来构建,
在qnx下测试并安装python 1.5.x: < BR>
1)配置shell=/usr/local/bin/bash cc=cc ranlib=:。\
./configure--verbose--without gcc--with libm=" < BR>
2)编辑模块/设置以激活所有有意义的功能
您的系统…在QNX使用以下模块进行测试: < BR>
阵列、音频操作、二进制、cpickle、cstringio、cmath,
密码、诅咒、错误号、fcntl、gdbm、grp、imageop,
语言环境,数学,MD5,新建,运算符,分析器,pcre,
POSIX、pwd、readline、regex、reop,
选择、信号、插座、Soundex、strop、struct,
syslog、termios、时间、计时、zlib、audioop、imageop < BR>
3)使shell=/usr/local/bin/bash < BR>
或者,如果您觉得需要速度: < BR>
使shell=/usr/local/bin/bash opt="-5-oil+nrt" < BR>
4)进行shell=/usr/local/bin/bash测试 < BR>
使用gnu readline 2.2似乎表现得很奇怪,但是
认为我的readline 2.2端口有问题。:- < BR>
5)安装shell=/usr/local/bin/bash < BR>
如果在运行python时得到sigsegvs(我还没有,但是
我只运行了一些小程序和测试用例,
可能没有堆栈;默认的32K可能是
有点紧。要增加堆栈大小,请编辑makefile
读取:ldflags=-n 48k < BR>
beos:有关编译/安装的说明,请参见misc/beos说明
BEOS R3或更高版本上的python。注意,只有powerpc
R3支持平台;PowerPC和x86都是
支持R4。 < BR>
cray t3e:mark hadfield(m.hadfield@niwa.co.nz)写道:
python可以在cray t3e上令人满意地构建,但是基于
我在NIWA T3E的经历(2002-05-22,版本2.2.1)
有一些bug和gotchas。有关详细信息,请参见
2002年5月comp.lang.python上题为"building"的线程
巨蟒爬上峭壁t3e"。 < BR>
1)使用克雷的CC,而不是GCC。后者据报没有
Konrad Hinsen的作品。现在可能有用,但可能不行。 < BR>
2)要将sys.platform设置为合理的值,请传递
配置脚本的以下环境变量: < BR>
马赫德普=Unicosmk < BR>
2)使用选项"enable unicode=ucs4"运行configure。 < BR>
3)Cray T3E不支持动态链接,因此扩展
必须通过添加(或取消注释)行来构建模块
在模块/设置中。最小的模块集是 < BR>
POSIX、新、SRE、Unicodedata < BR>
在niwa的香草t3e系统上,还包括
成功包含: < BR>
u编解码器,_语言环境,_套接字,_符号表,_testcapi,_weakref
数组、binascii、cmath、cpickle、crypt、cstringio、dbm
错误号、fcntl、grp、math、md5、运算符、分析器、pcre、pwd
regex、rotor、select、struct、strop、syslog和termios
时间、计时、x读数 < BR>
4)构建完python可执行文件和库之后,使
将执行setup.py,它将尝试生成剩余的
扩展并动态链接它们。每一次尝试
将失败,但不应停止生成过程。这是
正常。 < BR>
5)运行"make test"需要大量资源和原因
系统出现问题。您可能想尝试运行测试
单独或分组。 < BR>
sgi:sgi的标准"make"实用程序(/bin/make或/usr/bin/make)
不检查命令是否实际更改了文件
本应构建。这意味着每当你说"制造"
它将重做链接步骤。补救办法是用SGI的
更智能的"smake"实用程序(/usr/sbin/smake)或gnu make。如果
将makefile的第一行设置为!/usr/sbin/smake公司
make将调用smake(与gnu make类似)。 < BR>
警告:某些版本的
sgi的编译器会导致总线错误或其他奇怪的
行为,尤指数值运算。为了避免这种情况,
尝试使用"make opt="构建。 < BR>
OS/2:如果您运行的是WARP3或WARP4,并且拥有IBM的VisualAc/C++
编译器已安装,只需切换到pc\os2vacpp目录
并键入nmake。默认情况下支持线程和套接字
在python15.dll和python.exe的结果二进制文件中。 < BR>
蒙特利(64位aix):当前的蒙特利c编译器(可视时代)
使用object_mode={32 64}环境变量设置
编译模式为32位或64位(32位模式为
默认值)。可能需要64位编译模式
这个64位操作系统。因此,必须首先将对象模式设置为64
在配置(./configure)或
在蒙特利建造(制造)蟒蛇。 < BR>
reliant unix:线程支持不在reliant unix上编译,并且
配置脚本中有一个(小)问题
平台也是。这应该及时解决
未来版本。 < BR>
macosx:在segv进入时,测试将在10.1和10.2上崩溃
由于默认堆栈大小很小,因此测试和测试。如果
在执行"make test"之前,将堆栈大小设置为2048
故障是可以避免的。如果你用的是TCSH或CSH外壳,
使用"limit stacksize 2048"和bash shell(默认
从OSX 10.3开始,使用"ulimit-s 2048"。 < BR>
在Naked Darwin上,您可能需要添加configure选项
"--disable toolbox glue"(禁用工具箱胶)禁用碳的胶码
接口模块。模块本身目前只构建
如果添加--enable framework选项,请参见下文。 < BR>
在干净的osx/usr/local上不存在。做一个
"sudo mkdir-m 775/usr/本地"
在进行make安装之前。这可能不是个好主意
执行"sudo make install"以超级用户身份安装所有内容,
因为这可能会在以后安装基于distutils的
添加。 < BR>
有些人报告说,在使用"fink"之后构建python出现了问题
安装其他Unix软件。禁用fink(全部删除
.profile或.login中对/sw的引用应该可以解决这个问题S. < BR>
您可能需要尝试"配置"选项--"启用框架"
将python安装为框架。位置可以设置
作为--enable framework选项的参数(默认
/库/框架)。如果您需要
想要使用任何基于aqua的gui工具包(无论是tkinter、wxpython,
碳、可可或其他任何物质)。 < BR>
您可能还想尝试configure选项--enable universalsdk"
它将python构建为通用二进制文件,并支持
i386和ppc架构。这需要Xcode 2.1或更高版本才能生成。 < BR>
有关框架和
通用版本。 < BR>
cygwin:最近(相对于写作时间,2001-12-19)
cygwin安装时,存在交互问题
动态链接和fork()。这在构建中体现出来
执行setup.py时失败。 < BR>
有两种解决方法都可以启用python(尽管
不支持线程)来生成并通过所有测试
nt/2000(很可能还有xp,尽管有测试报告
如能在xp上使用,将不胜感激)。 < BR>
解决方法: < BR>
(a)创可贴解决方案是静态链接插座模块
而不是动态(这是默认设置)。 < BR>
要执行此操作,请运行"./configure--with threads=no",包括
您需要的其他选项(--prefix等)。然后在模块/设置中
取消注释行: < BR>
ssl=/usr/local/ssl
插座模块.c\
使用ssl-i$(ssl)/include-i$(ssl)/include/openssl\
-l$(SSL)/lib-l ssl-lcrypto < BR>
并从ssl变量中删除"local/"。最后,快跑
"制造"! < BR>
(b)"正确"的解决方案是重新设置cygwin dll的位置,以防止
基地址冲突。有关如何做到这一点的详细信息可以是
可在以下邮件中找到: < BR>
http://sources.redhat.com/ml/cygwin/2001-12/msg00894.html < BR>
希望此解决方案的版本
很快被纳入cygwin发行版。 < BR>
还有两个问题: < BR>
(1)由于已知
cygwin pthreads中导致test\u threadedtempfile
挂起。 < BR>
(2)未生成"诅咒"模块。这是一个已知的
cygwin ncurses下一次应该解决的问题
此软件包已发布。 < BR>
在旧版本的cygwin上,test\u poll可能会挂起并测试strftime
可能会失败。 < BR>
目前还不清楚9x/me上的情况。
前一段时间,有报道称
回归测试失败: < BR>
测试
测试选择(挂起)
测试插座 < BR>
由于测试选择挂起9x/me,应运行
使用以下方法进行回归测试: < BR>
使testopts='-l-x test\u select'测试 < BR>
关于这些平台的最新消息
欢迎您提供版本! < BR>
windows:在命令行上使用文件类型执行python脚本时
关联(即启动"script.py"而不是"python script.py"),
除非设置特定的注册表项,否则重定向可能无法工作。见
知识库文章<;http://support.microsoft.com/kb/321788>;。 < BR>< BR>
配置bsddb和dbm模块
--- < BR>
从python版本开始离子2.3,pybsddb包
<;在python中采用http://pybsddb.sf.net/>;作为bsddb包,
公开一组包级函数,这些函数提供
向后兼容行为。仅限版本3.3至4.4
sleepycat的库提供了必要的api,因此较旧的版本
不支持通过此接口。旧的bsddb模块
保留为bsddb185,但它不是默认生成的。用户
想要使用它,必须调整模块/设置来构建它。这个
如果
未找到其他首选方案(ndbm、gdbm)。 < BR>
构建sqlite3模块
- < BR>
要构建sqlite3模块,需要sqlite3或libsqlite3
安装了包,包括头文件。许多现代操作
系统将标题以单独的包分发到库中-
它通常与主包同名,但使用-dev或
-devel后缀。 < BR>
python中包含的pysqlite2版本需要sqlite3 3.0.8
或更高版本。setup.py尝试检查是否可以找到正确的版本。 < BR>
配置线程
------ < BR>
从python 2.0开始,默认情况下启用线程。如果你愿意
编译时不使用线程,或者如果您的线程支持被破坏,请传递
--线程=没有要配置的开关。不幸的是
对于
线程正常工作。下面是这些选项的列表,
由Bill Janssen收集。我们希望自动化这个过程
更多,但以下信息不足以为
configure.in文件,因此需要手动干预。如果你修补
configure.in文件并确信修补程序有效,请
发送修补程序。(不用麻烦修补配置脚本本身
--每次configure.in文件更改时都会重新生成该文件。) < BR>
用于线程的编译器开关
< BR>
如果
这在您的系统上不起作用,或者如果定义了可重入
不正确,请将其作为错误报告。 < BR>
用于线程的操作系统/编译器/线程开关
(posix是草案10,dce是草案4)编译和链接 < BR>
sunos 5.{1-5}/{gcc,sunpro cc}/solaris-mt
sunos 5.5/{gcc,sunpro cc}/posix(无)
dec osf/1 3.x/cc/dce-螺纹
(butenhof@zko.dec.com)
Digital Unix 4.x/cc/dce-线程
(butenhof@zko.dec.com)
数字Unix 4.x/cc/posix-pthread
(butenhof@zko.dec.com)
aix 4.1.4/cc_r/d7(无)
(buhrt@iquest.net)
aix 4.1.4/cc_r4/dce(无)
(buhrt@iquest.net)
irix 6.2/cc/posix(无)
(robertl@cwi.nl) < BR>< BR>
线程的链接器(ld)库和标志
< BR>
用于线程的操作系统/线程库/交换机 < BR>
sunos 5.{1-5}/solaris-lthread
Sunos 5.5/POSIX-lpthread系列
dec osf/1 3.x/dce-lpthreads-lmach-lc_r-lc
(butenhof@zko.dec.com)
数字Unix 4.x/dce-lpthreads-lpthread-lmach-lexc-lc
(butenhof@zko.dec.com)
数字Unix 4.x/posix-lpthread-lmach-lexc-lc
(butenhof@zko.dec.com)
aix 4.1.4/{draft7,dce}(无)
(buhrt@iquest.net)
irix 6.2/posix公司-LP-线程
(jph@emilia.engr.sgi.com) < BR>< BR>
构建共享libpython
- < BR>
从python 2.3开始,大部分解释器都可以构建
进入一个共享库,然后由解释器使用
可执行文件,以及嵌入python的应用程序。要启用此功能,
使用--enable shared配置。 < BR>
如果启用此功能,将使用相同的对象文件创建
静态库。特别是,静态库将包含
在pic标记的平台上使用位置无关代码(pic)的文件
是共享库所必需的。 < BR>< BR>
配置其他内置模块
- < BR>
从python 2.1开始,源代码顶部的setup.py脚本
分发试图检测哪些模块可以构建和
自动编译它们。自动检测并不总是有效,所以
您仍然可以通过编辑模块/设置自定义配置
文件;但这应被视为最后的手段。剩下的部分
仅当您决定编辑模块/设置文件时,才应用部分。
您还需要启用某些模块的静态链接(这些模块
需要在某些系统上启用配置文件)。 < BR>
此文件最初由配置脚本从setup.dist复制;
如果它还不存在,请通过复制modules/setup.dist创建它
您自己(配置永远不会覆盖它)。从不编辑setup.dist
--始终编辑setup或setup.local(请参见下文)。阅读中的评论
有关允许进行哪种编辑的信息的文件。当你
已在modules目录中编辑设置,解释器将
下次运行make时自动重建(在顶层
目录)。 < BR>
可以在任何unix系统上构建许多有用的模块,但有些模块是可选的
无法可靠地自动检测模块。通常最快的方法
确定某个特定模块是否工作是为了查看它是否工作
将生成:在安装程序中启用它,然后如果获得编译或链接
错误,禁用它--您要么缺少支持,要么需要调整
该模块的编译和链接参数。 < BR>
在SGI IRIX上,有一些模块与许多特定于SGI的
系统库,例如GL库和音频硬件。这些
setup.py脚本不会生成模块。 < BR>
除了文件设置,还可以编辑文件setup.local。
(makesetup脚本同时处理这两者)。你可能会发现更多
方便编辑setup.local并让setup单独运行。然后,什么时候
安装新的python版本时,可以复制旧的setup.local 文件。 < BR>< BR>
设置优化/调试选项
< BR>
如果您想要或需要更改的优化/调试选项
C编译器,分配给顶层make上的opt变量
命令;例如,"make opt=-g"将构建python的调试版本
在大多数平台上。默认值是opt=-o;opt-in的值
运行配置脚本时的环境将覆盖此默认值
(同样适用于cc;libs的初始值用作基数
要链接的库集)。 < BR>
使用gcc编译时,opt的默认值还包括
墙和-wstrict原型选项。 < BR>
帮助调试内存管理问题的其他调试代码可以
通过对配置脚本使用--with pydebug选项来启用。 < BR>
对于更改二进制兼容性的标志,请使用额外的标志
变量。 < BR>< BR>
分析
--- < BR>
如果希望打开C评测,最简单的方法是运行configure
将cc环境变量设置为必要的编译器 伊诺卡tion. 例如,在Linux上,这可以使用
gprof(1): < BR>
cc="gcc-pg"。/配置 < BR>
请注意,在Linux上,gprof显然不适用于共享
图书馆。makefile/setup机制可用于编译和
静态链接大多数扩展模块。 < BR>< BR>
覆盖率检查
---- < BR>
要使用gcov检查c覆盖率,请运行"make coverage"。本遗嘱
创建一个python二进制文件并激活profiling,然后使用".gcno"和
".gcda"文件,用于使用该选项编译的每个源文件。用
生成的二进制文件,现在运行要检查其覆盖率的代码。
然后,您可以看到每个源文件的覆盖率统计信息
运行gcov,例如 < BR>
gcov-o模块zlibmodule < BR>
这将在当前目录中创建一个"zlibmodule.c.gcov"文件
包含该源文件的覆盖率信息。 < BR>
这仅适用于静态编译到
可执行文件;使用makefile/setup机制编译和链接
要静态覆盖检查的扩展模块。 < BR>< BR> BR/>测试
< BR>
要测试解释器,请在顶层目录中键入"make test"。
这将运行测试集两次(一次不使用编译文件,一次使用
上次测试运行留下的编译文件)。测试集
产生一些输出。您通常可以忽略有关
由于无法导入可选功能而跳过测试。
如果打印了关于失败测试、回溯或核心的消息
产生转储,有问题。在一些Linux系统上(那些
尚未使用glibc 6),测试时间失败,原因是
C库中strftime()的非标准实现。拜托
忽略此问题,或升级到glibc版本6。 < BR>
重要提示:如果测试失败,并且您决定发送错误报告,
*不包括"make test"的输出。这没用。运行
手动测试失败,如下所示: < BR>
./python./lib/test/test_whatever.py < BR>
(如果在
不同的目录)。这将以详细模式运行测试。 < BR>< BR>
安装
---- < BR>
安装python二进制、库模块、共享库模块
(见下文),包括文件、配置文件和手册页,
只需键入 < BR>
安装 < BR>
这将在
用--prefix选项指定的目录,用于配置
"prefix"make变量(默认/usr/local)。所有二进制和其他
如果
给定的目录--exec prefix或'exec_prefix'make变量
(默认为--prefix目录)。 < BR>
如果设置了destdir,它将作为
安装,文件将安装到$(destdir)$(前缀)中,
$(destdir)$(exec_前缀)等。 < BR>
创建的所有子目录的
名称,例如库模块安装在
"/usr/local/lib/python<;version>;/"默认情况下,其中<;version>;是
<;主要>;<;次要>;版本号(例如"2.1")。python二进制文件是
安装为"python<;version>;",名为"python"的硬链接是
已创建。唯一没有安装版本号的文件
name是手册页,安装为"/usr/local/man/man1/python.1"
默认情况下。 < BR>
如果要安装多个版本的python,请参阅以下部分
标题为"安装多个版本"。 < BR>
您唯一需要手动安装的是
emacs位于misc/python-mode.el中。(但话说回来,最近
Emacs的版本可能已经有了它。)folloW说明
带有用于安装站点特定文件的emacs。 < BR>
在Mac OS X上,如果您使用--enable framework配置了Python,则
应使用"make frameworkinstall"进行安装。注意这个
将python可执行文件安装在
path,您可能需要在/usr/local/bin中设置符号链接。 < BR>< BR>
安装多个版本
-- < BR>
如果要安装多个版本的python,请在unix和mac系统上
使用与configure相同的安装前缀(--prefix参数)
脚本)必须注意,主python可执行文件不是
被另一个版本的安装覆盖。所有文件和
使用"make altinstall"安装的目录包含major和minor
版本,因此可以并排生活。""make install"也会创建
${prefix}/bin/python,它指的是${prefix}/bin/pythonx.y。
要使用同一前缀安装多个版本,必须确定
版本(如果有)是您的"主要"版本。使用安装该版本
"安装"。使用"make altinstall"安装所有其他版本。 < BR>
例如,如果要安装python 2.5、2.6和3.0,其中2.6是
在主版本中,您可以在2.6版本中执行"make install"
其他目录和"make altinstall"。 < BR>< BR>
配置选项和变量
- < BR>
一些特殊情况通过将选项传递给configure来处理 脚本。 < BR>
警告:如果使用不同的选项重新运行配置脚本,则
重建前必须运行"make clean"。此规则的例外情况:
更改--prefix或--exec prefix后,只需删除
模块/getpath.o. < BR>
--with(out)-gcc:如果
找到了。如果你不想要这个,或者这个编译器
已在您的平台上安装但已损坏,请传递选项
--不含GCC。你也可以通过"cc=cc"(或者
正确的C编译器的名称是)在环境中,但是
使用--不使用gcc的优点是
被config.status脚本记住的--重新检查
选项。 < BR>
--前缀,--exec前缀:如果要安装二进制文件和
python库不在/usr/local/{bin,lib},
您可以传递选项--prefix=directory;解释器
二进制文件将作为目录/bin/python和
库文件作为目录/lib/python/*。如果你通过
--exec prefix=目录(以及)这将覆盖
依赖于体系结构的文件的安装前缀(如
解释器二进制)。注意--prefix=目录

已编译modules/config.c。传球选择权
prefix=directory(和/或exec_prefix=directory)覆盖
配置时设置前缀;这可能更方便
如果您改变主意,请重新运行配置脚本
关于安装前缀。 < BR>
--使用readline:不再支持此选项。GNU
setup.py在出现时会自动启用readline。 < BR>
--对于线程:在大多数unix系统上,现在可以使用多个
默认情况下启用线程和对此的支持。到
禁用此选项,pass--with threads=no。如果库需要
对于生活在特殊地方的线程,可以使用
--线程=目录。重要提示:在
更改(启用或禁用)此选项,或者
会得到liNK错误!注意:对于dec unix使用
--改为使用DEC线程。 < BR>
--使用sgi-dl:在sgi irix 4上,扩展模块的动态加载是
由jack jansen的"dl"库支持,它是
ftp'可从ftp://ftp.cwi.nl/pub/dynload/dl-1.6.tar.z下载。
这是启用的(在ftp和编译了dl之后
库)通过传递--with sgi dl=directory where directory
是dl库的绝对路径名。(不用费心了
irix 5,它已经有了使用sunos风格的动态链接
共享库。)不支持此选项。 < BR>
--使用dl dld:据说支持动态加载模块
在其他一些系统上:vax(Ultrix)、sun3(sunos 3.4)、sequent
对称(dynix)和atari st。这是使用
GNU动态加载包的组合
(ftp://ftp.cwi.nl/pub/dynload/dl-dld-1.1.tar.z)和
上述sgi-dl库的仿真(仿真
可在
ftp://ftp.cwi.nl/pub/dynload/dld-3.2.3.tar.z)。到
启用此选项,ftp并编译两个库,然后调用
配置,将选项传递给它
--对于dl dld=dl_目录,dld_目录是
dl仿真库的绝对路径名,以及
dld_directory是gnu dld库的绝对路径名。
(不要在sunos 4或5上费心,它们已经有了动态的
使用共享库链接。)不支持此选项。 < BR>
--使用libm,--使用libc:可以指定替代项
数学库(默认-lm)和C库的版本
(默认为空字符串)使用选项
--分别使用libm=string和--libc=string。为了
例如,如果系统要求将-lcu传递给c
编译器要使用共享C库,可以通过
--使用libc=-lc\u。这些库在所有其他库之后传递
库,最后是c库。 < BR>
--使用libs='libs':将'libs'添加到python解释器的libs中
链接到。 < BR>
用CXX Mault= & lt;编译器& gt;:如果您计划使用C++扩展模块,
然后——在某些平台上——需要编译python的main() 用C++编译器实现函数的BR/>。使用此选项时,make将使用
<;compiler>;编译main()*和*链接python可执行文件。 很可能产生的可执行文件依赖于C++。
编译器的运行库。(默认值为--不带CXX Main。) < BR>
有些平台不需要您构建python BR/>用C++编译器,以便使用C++扩展模块。
例如,带有elf共享二进制文件和gcc 3.x、4.x的x86 linux
一个平台。我们建议您配置python
--在这些平台上没有cxx main,因为不匹配 在用于构建Python和C++的C++编译器版本之间 BR/>构建一个C++扩展模块可能导致崩溃
运行时。 < BR>
python安装还存储变量cxx
确定,例如,默认情况下C++编译器ditudil调用 BR/>构建C++扩展。如果在configure命令上设置cxx
行到任何非零长度的字符串,则configure不会
更换CXX。如果不预设cxx,但通过
--使用cxx main=<;compiler>;,然后配置集cxx=<;compiler>;。 在所有其他情况下,配置通过以下方式查找C++编译器 BR/>一些常用名称(C++、G++、GCC、CC、CXX、Cc++、CL)和集合
cxx到它找到的第一个编译器。如果找不到 < BR>C++编译器,然后设置cxx=""。 < BR>
同样,如果要更改用于链接
python可执行文件,然后在configure命令行上设置linkcc。 < BR>< BR>
--使用pydebug:启用其他调试代码以帮助跟踪
内存管理问题。这允许打印所有
解释器终止时的活动对象。 < BR>
--with(out)-通用换行符:使用
外部换行约定(默认:启用)。换句话说,
任何一个\r\n或\r\n都可以用作行尾字符。
如果启用,导入和执行文件将自动接受任何换行
在文件中。python代码可以使用open(file,'u')打开一个文件
以通用换行模式阅读。不支持此选项。 < BR>
--使用tsc:使用奔腾时间戳计数器(tsc)的配置文件。 < BR>
--使用系统ffi:使用ffi构建cTypes扩展模块
系统上安装的库。 < BR>< BR>
为多个架构构建(使用vpath功能)
- < BR>
如果文件系统在多个体系结构之间共享,则
通常不需要为每个
要支持的体系结构。如果make程序支持
vpath特性,您可以为每个
架构,并在每个目录中运行配置脚本(在
具有适当选项的适当机器)。这将创建
必要的子目录和其中的makefile。生成文件
包含一行vpath=…指向包含
实际来源。(在SGI系统上,如果
您使用vpath——不要尝试gnumake。) < BR>
例如,以下是构建最小python所需的全部内容
在/usr/tmp/python中(假设~guido/src/python是顶层
目录,您需要在/usr/tmp/python中构建: < BR>
$mkdir/usr/tmp/python
$cd/usr/tmp/python
$~guido/src/python/配置
[…]
$制造
[…]
$ < BR>
注意configure将原始安装文件复制到构建
如果目录中没有安装文件。这意味着你可以
独立编辑每个体系结构的设置文件。为此
原因,不会跟踪对原始安装文件的后续更改
自动,因为它们可能覆盖本地更改。强制复制
在更改的原始安装文件中,删除目标安装文件。(The
makesetup脚本支持多个输入文件,因此如果希望
想不到您可以更改规则以创建一个空的setup.local
不存在并使用参数$(srcdir)/setup setup.local运行它;
但这假设您只需要添加模块。) < BR>
还要注意,不能为vpath和非vpath生成使用工作区。这个
一个版本留下的对象文件会混淆另一个版本。 < BR>< BR>
在非unix系统上构建
-- < BR>
对于Windows(2000/NT/ME/98/95),假设您有MS VC++7.1,则
项目文件在pcbuild中,工作区是pcbuild.dsw。见
pcbuild\readme.txt获取详细说明。 < BR>
对于其他非Unix Windows编译器,特别是MS VC++6.0和
对于OS/2,输入目录"pc"并读取文件"readme.txt"。 < BR>
对于Mac,将提供单独的源分发,
用于codewarrio编译器。如果你对Mac感兴趣
发展,加入pythonmac特别兴趣小组
(http://www.python.org/sigs/pythonmac-sig/,或发送电子邮件至
pythonmac sig请求@python.org)。 < BR>
当然,还有二进制数据可用于这些
平台——见http://www.python.org/。 < BR>
要将python移植到新的非unix系统,您必须伪造
手动运行配置脚本的效果(对于Mac和PC
已经为您完成了)。一个好的开始是复制文件
pyconfig.h.in到pyconfig.h并编辑后者以反映实际
系统配置。大多数符号必须简单地定义为
1仅当相应的功能存在且可以单独保留时
否则;但是*\u t类型符号必须定义为
如果需要定义int的变体。 < BR>
对于所有平台,构建安排定义
一个版本中编译器命令行上的预处理器符号ndebug
python的构建(else assert()调用仍保留在代码中,对
发布构建性能)。Unix、Windows和Mac已经构建
这样做。 < BR>< BR>
其他问题
==================== < BR>
Emacs模式
---- < BR>
对于python代码有一个极好的emacs编辑模式;请参见文件
其他/python-mode.el.它最初是由著名的蒂姆·彼得斯写的
现在由同样著名的barry warsaw维护(不是
巧合的是他们现在都在同一个团队工作)。最新的
版本,以及其他与python相关的emac
Goodies,在线访问:http://www.python.org/emacs/python-mode。和
如果您计划编辑python c代码,请选择
cc mode的最新版本http://www.python.org/emacs/cc-mode;它
包含贯穿大部分python c源代码的"python"样式
文件。(Emacs或Xemacs的较新版本可能已经随附了
最新版本的python模式。) < BR>< BR> Tkinter
< BR>
setup.py脚本在检测到
可用的tcl/tk安装。这需要tcl/tk版本8.0或 更高。 < BR>
有关Tkinter的更多信息,请参见Tkinter资源页:
http://www.python.org/topics/tkinter/ < BR>
demo/tkinter目录中有演示。 < BR>
注意,有一个名为"tkinter"(大写T)的python模块
位于lib/lib tk/tkinter.py中,还有一个名为"_tkinter"的C模块
(小写T和前导下划线)位于
模块/u tkinter.c.演示和普通tk应用程序仅导入
python tkinter模块——只有后者才能导入c\u tkinter
模块。为了找到c-tkinter模块,必须对其进行编译
并链接到python解释器——setup.py脚本可以 这件事。为了找到python tkinter模块,sys.path必须是
设置正确--正常安装会解决此问题。 < BR>< BR>
分布结构
< BR>
大多数子目录都有自己的自述文件。大多数文件都有
评论。 < BR>
演示/演示脚本、模块和程序
文档/文档源(structuredText)
语法分析器生成器的语法/输入
包含/公共头文件
许可证授权信息
lib/python库模块
Mac/Macintosh特定资源
makefile.pre.in config.status从中创建makefile.pre的源
其他/其他有用文件
大多数内置模块的模块/实现
大多数内置对象类型的对象/实现
PC/特定于PC端口的文件(DOS、Windows、OS/2)
PCbuild /微软Visual C++的构建目录
解析器/解析器和标记器及其输入处理
python/字节编译器和解释器
读取您正在读取的文件
RISCOS/特定于RISC OS端口的文件
工具/som用python编写的有用程序
pyconfig.h.在创建pyconfig.h的源中(gnu autoheader输出)
配置shell脚本(gnu autoconf输出)
配置规范中的configure.in(gnu autoconf的输入)
安装用于安装文件的sh shell脚本
setup.py用于构建扩展模块的python脚本 < BR>
以下文件将(可能)由
配置和构建过程: < BR>
生成文件生成规则
运行模块/makesetup之前的makefile.pre-build规则
BuildNo跟踪内部版本号
配置变量的config.cache缓存
pyconfig.h配置头
上次配置运行的config.log日志
上次运行配置脚本后的config.status状态
getbuildinfo.o来自modules/getbuildinfo.c的对象文件
libpython<;版本>;.a库存档
python可执行解释器
运行带有-r标志的回归套件的reflog.txt输出
vi和emacs的标记、标记和标记文件 < BR>< BR>
就这些,伙计们!
----- < BR>< BR>
--guido van rossum(主页:http://www.python.org/~guido/) < BR>

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
java如何设置将在类声明中使用的输入参数?   混合表达式和文本的java SpEL模板   getHeaders()无法返回java Mockito测试SimpMessageHeaderAccessor getHeaders()应返回MessageHeaders   如何在java中创建循环回菜单的方法   具有多态性的Java列表问题   java Guice多数据库自动切换   java服务器错误,状态代码:400,错误代码:100005,消息:您已超过组织的内存限制   静态mutator方法的Java命名约定   用于实例化另一个java文件的groovy java代码   javajavax。网ssl。SSLHandshakeException:握手期间远程主机关闭连接。重新启动服务器后,它工作正常,但会再次显示   java WebSphere+RAD+Taglib   REST客户端中出现java异常:找不到contenttype application/json的messagebodyreader   无参数setter的Java命名   java从数组中删除重复字符