python安装包的时候提示 pyc pyo pyd 没有matching principle是什么意思

python 文件 .py .pyc .pyw .pyo .pyd
python 文件 .py .pyc .pyw .pyo .pyd
DLL文件即动态链接库文件,是一种可执行文件,它允许程序共享执行特殊任务所必需的代码和其他资源。打不开,不过可以使用反汇编;PYD是一种PYTHON动态模块。实质上还是dll文件,只是改了后缀为PYD,pyd:
扩展模块,一般用C或C++编写,其实可以说是一种更优秀的D语言编写的。
源自:http://my.oschina.net/renwofei423/blog/17404
通常认为,Python是一种解释性的语言,但是这种说法是不正确的,实际上,Python在执行时,首先会将.py文件中的源代码编译成
Python的byte code(字节码),然后再由Python Virtual Machine来执行这些编译好的byte code。这种机制的基本思想跟Java,.NET
是一致的。然而,Python Virtual Machine与Java或.NET的Virtual Machine不同的是,Python的Virtual Machine是一种更高级的
Virtual Machine。这里的高级并不是通常意义上的高级,不是说Python的Virtual Machine比Java或.NET的功能更强大,更拽,而是说
和Java或.NET相比,Python的Virtual Machine距离真实机器的距离更远。或者可以这么说,Python的Virtual Machine是一种抽象层次
更高的Virtual Machine。
Python应该提供一种机制,保存编译的中间结果,即byte code,或者更准确地说,保存PyCodeObject。事实上,Python确实提供
了这样一种机制——Pyc文件。
在执行一个.py文件中的源代码之后,Python并不会自动生成与该.py文件对应的.pyc文件。我们需要自己触发Python来创建pyc文件。
下面我们提供一种使Python创建pyc文件的方法,其实很简单,就是利用Python的import机制。
在Python运行的过程中,如果碰到import abc,这样的语句,那么Python将到设定好的path中寻找abc.pyc或abc.dll文件,如果没有这
些文件,而只是发现了abc.py,那么Python会首先将abc.py编译成相应的PyCodeObject的中间结果,然后创建abc.pyc文件,并将中间
结果写入该文件。接下来,Python才会对abc.pyc文件进行一个import的动作,实际上也就是将abc.pyc文件中的PyCodeObject重新在内
存中复制出来
下面是与python相关的文件扩展名,源自:/news/33
首先是我们最常见的.py文件。以.py扩展名的文件是源代码文件,由python.exe解释,可在控制台下运行。当然也可以用文本编辑器进
接下来介绍的是.pyc文件。以.pyc为扩展名的是python的编译文件。.pyc文件是不能够用文本编辑器之类的进行编辑的,但是同样它的
优点在于.pyc文件的执行速度快于.py文件。至于为什么要有.pyc文件,这个需求太明显了,因为py文件是可以直接看到源码的,如果
你是开发商业软件的话,不可能把源码也泄漏出去吧?所以就需要编译为pyc后,再发布出去。
再接下来介绍的是.pyw文件。很多使用过.pyc文件的同学都知道,.pyc文件执行的时候桌面会出现黑糊糊的窗口,有的时候这是十分难
看的。于是.pyw文件就应运而生了。.pyw文件与.pyc文件本质上没有什么区别,只是.pyw执行的时候不会出现黑窗口。.pyw 格式主要
是被设计来运行开发完成的纯图形界面程序的。 纯图形界面程序的用户不需要看到控制台窗口。值得一提的是,开发纯图形界面程序
的时候,你可以暂时把 .pyw 改成 .py , 以便运行时能调出控制台窗口,看到所有错误信息,方便进行修改。
接下来介绍的是.pyo文件。pyo是优化编译后的程序。 python -O 源文件即可将源程序编译为pyo文件。同样.pyo文件也是不能用文
本编辑器编辑的。
最后介绍的是.pyd文件。.pyd文件并不是使用python编写而成,.pyd文件一般是其他语言编写的python扩展模块。(之前又在网上看到
过有关解释,.pyd文件是用D语言按照一定的格式编写,并处理成二进制文件。那么什么是D语言呢??它是c/c++的综合进化版,不仅
具有二者的全部优点,而且整体性能更佳,但是其抽象程度高。)
感谢关注 Ithao123精品文库频道,是专门为互联网人打造的学习交流平台,全面满足互联网人工作与学习需求,更多互联网资讯尽在 IThao123!
Laravel是一套简洁、优雅的PHP Web开发框架(PHP Web Framework)。它可以让你从面条一样杂乱的代码中解脱出来;它可以帮你构建一个完美的网络APP,而且每行代码都可以简洁、富于表达力。
产品设计是互联网产品经理的核心能力,一个好的产品经理一定在产品设计方面有扎实的功底,本专题将从互联网产品设计的几个方面谈谈产品设计
随着国内互联网的发展,产品经理岗位需求大幅增加,在国内,从事产品工作的大部分岗位为产品经理,其实现实中,很多从事产品工作的岗位是不能称为产品经理,主要原因是对产品经理的职责不明确,那产品经理的职责有哪些,本专题将详细介绍产品经理的主要职责
Swift是Apple在WWDC2014所发布的一门编程语言,用来撰写OS X和iOS应用程序[1]。在设计Swift时.就有意和Objective-C共存,Objective-C是Apple操作系统在导入Swift前使用的编程语言
Swift是供iOS和OS X应用编程的新编程语言,基于C和Objective-C,而却没有C的一些兼容约束。Swift采用了安全的编程模式和添加现代的功能来使得编程更加简单、灵活和有趣。界面则基于广受人民群众爱戴的Cocoa和Cocoa Touch框架,展示了软件开发的新方向。
IThao123周刊21:56 提问
在Python虚拟环境中使用环境外的mysql
环境:win8 64bit、Python2.7、mysql 5.6.20,
Python和mysql连接使用MySQL-python-1.2.3.win32-py2.7
我是下载MySQL-python-1.2.3.win32-py2.7.exe后双击打开运行安装,安装正确,可以在cmd命令行正确启动数据库。但是我需要在virtualenv环境下使用mysql,问题出现了:
由于安装MySQL-python-1.2.3.win32-py2.7是下载后双击打开安装的,也就是说在虚拟环境外部安装的,所以在venv环境中import MySQLdb时提示没又该模块。但是又要在虚拟环境中使用,请各位老师指点一番,谢谢
1:在虚拟环境中如何安装MySQL-python-1.2.3.win32-py2.7
2:在虚拟环境中是否能够引入环境外的包
按赞数排序
终于找到方法了,马上哭出来了。。。。。
pip install --allow-external mysql-connector-python mysql-connector-python
要写两遍,难道是重要的工具要写两遍。。。。
网上搜的下述方法也是不对
& pip install mysql-connector-python
You are using pip version 7.0.3, however version 7.1.2 is available.
You should consider upgrading via the 'python -m pip install --upgrade pip' command.
Collecting mysql-connector-python
Could not find a version that satisfies the requirement mysql-connector-python (from ve
Some externally hosted files were ignored as access to them may be unreliable (use --al
low-external mysql-connector-python to allow).
No matching distribution found for mysql-connector-python
(venv) Think@RESEARCH E:\test
& pip install --allow-external mysql-connector-python \mysql-connector-python
You are using pip version 7.0.3, however version 7.1.2 is available.
You should consider upgrading via the 'python -m pip install --upgrade pip' command.
Exception:
Traceback (most recent call last):
File "E:\test\venv\lib\site-packages\pip\basecommand.py", line 223, in main
status = self.run(options, args)
File "E:\test\venv\lib\site-packages\pip\commands\install.py", line 268, in run
wheel_cache
File "E:\test\venv\lib\site-packages\pip\basecommand.py", line 268, in populate_requirement_set
wheel_cache=wheel_cache
File "E:\test\venv\lib\site-packages\pip\req\req_install.py", line 207, in from_line
wheel_cache=wheel_cache)
File "E:\test\venv\lib\site-packages\pip\req\req_install.py", line 66, in __init__
req = pkg_resources.Requirement.parse(req)
File "E:\test\venv\lib\site-packages\pip\_vendor\pkg_resources\__init__.py", line 2960, in parse
reqs = list(parse_requirements(s))
File "E:\test\venv\lib\site-packages\pip\_vendor\pkg_resources\__init__.py", line 2891, in parse_requirements
raise ValueError("Missing distribution spec", line)
ValueError: ('Missing distribution spec', '\\mysql-connector-python')
虚拟环境中选择源码来python setup.py install安装。
如果你可以安装mysql-python globally (in C:/python27) (
MySQL_python-1.2.4-py2.7.egg-info(folder)
MySQLdb(folder)
_mysql_exceptions.py/.pyc/.pyo
_mysql.pyd、
这四个文件复制到你的虚拟环境的site-packages目录下,就可以使用了
其他相似问题编译python生成.pyc文件 - 八袋长老的个人空间 - 51Testing软件测试网 51Testing软件测试网-中国软件测试人的精神家园
如果你有坚定的信念你就不会迷茫。
编译python生成.pyc文件
& 10:41:12
/ 个人分类:
是由py文件经过编译后二进制文件,py文件变成pyc文件后,加载的速度有所提高,而且pyc是一种跨平台的字节码,是由的虚
拟机来执行的。pyc的内容,是跟python的版本相关的,不同版本编译后的pyc文件是不同的,2.5编译的pyc文件,2.4版本的
python是无法执行的。pyc文件也是可以反编译的,不同版本编译后的pyc文件是不同的,根据python源码中提供的opcode,可以根据
pyc文件反编译出
py文件源码,网上可以找到一个反编译python2.3版本的pyc文件的工具,不过该工具从python2.4开始就要收费了,如果需要反编译出新版
本的pyc文件的话,就需要自己动手了(俺暂时还没这能力^--^),不过你可以自己修改python的源代码中的opcode文件,重新编译
python,从而防止不法分子的破解。(来自
http://blog.csdn.net/sislcb/archive//4002414.aspx)&&&
编译.py文件有以下几种方式,当然所有这些方式都是使用了py_compile的compile()方法。同时我们可以使用compileall模块中
的compile_dir来编译某个文件夹下面所有的.py文件,以及可以使用compile_path来依次编译sys.path制定路径下的.py文
件。如果看过compileall模块的源码我们可以知道compileall编译.py文件其实还是调用了py_compile的compile()方
法。1、通过写python代码来编译.py文件,然后运行这个python脚本即可,运行过程中输入你要编译的.py文件。import & py_ &file=raw_input( "Please enter filename: ");pile(file);2、如果是在环境下,可以通过写一个bash脚本编译.py。#! & /bin/sh(echo &
'import & compileall '; & echo &
'pile_dir( "./ ") ') & | & python &完成上述代码后用bash命令运行即可。3、直接通过命令来运行,可以看到下面的命令中并没有用到compile()函数, 这是因为py_compile模块的main()函数中调用了compile().python -m py_compile .pypython -O -m py_compile test.py-O 优化成字节码-m 表示把后面的模块当成脚本运行-OO 表示优化的同时删除文档字符串如果你想看compile(), compile_dir(), compile_path()具体每个参数是干吗用的,可以使用print
pile().__doc__来查看,或者直接打开py_compile.py,compileall.py文件来看。

我要回帖

更多关于 matching principle 的文章

 

随机推荐