cpython

11 个最佳的 Python 编译器和解释器

萝らか妹 提交于 2020-02-27 10:05:00
原作:Archie Mistry 翻译:豌豆花下猫@Python猫 原文: https://morioh.com/p/765b19f066a4 Python 是一门对初学者友好的编程语言,是一种多用途的、解释性的和面向对象的高级语言。 它拥有非常小的程序集,非常易于学习、阅读和维护。其解释器可在Windows、Linux 和 Mac OS 等多种操作系统上使用。它的可移植性和可伸缩性等特性使得它更加容易被运用。 Python 库可用于以下用途: Web 开发 数据科学 机器学习 多媒体 软件开发 像 Django 这样的 Web 框架 GUI 应用 大多数极客认为 Python 是解释性语言,但它也存在编译过程。 编译部分在代码执行时完成,并被删除。然后编译内容被转换为字节码。通过机器和操作系统进一步扩展到 Python 虚拟机。 本文重点介绍了适用于 Python 程序员的 11 种最佳的 Python 编译器和解释器。 最好的 Python 编译器和解释器 1.Brython Brython 是一种流行的 Python 编译器,可将 Python 转换为 Javascript 代码。它提供对所有 Web 浏览器(包括一种手机 Web 浏览器)的支持。 它还支持最新的 Html5/CSS3 规范,可以使用流行的 CSS 框架,如 BootStrap3 和 LESS。 网址:

A full and minimal example for a class (not method) with Python C Extension?

狂风中的少年 提交于 2020-02-27 04:02:27
问题 Everywhere, I can easily find an example about writing a method with Python C Extensions and use it in Python. Like this one: Python 3 extension example $ python3 >>> import hello >>> hello.hello_world() Hello, world! >>> hello.hello('world') Hello, world! How to do write a hello word full featured Python class (not just a module method)? I think this How to wrap a C++ object using pure Python Extension API (python3)? question has an example, but it does not seem minimal as he is using (or

第 428 期 Python 周刊

泄露秘密 提交于 2020-02-26 21:35:47
文章,教程和讲座 训练一个自定义形状的预测模型 链接: https://www.pyimagesearch.com/2019/12/16/training-a-custom-dlib-shape-predictor/ 在本教程中,您将学习怎样训练一个自定义的切割图形的预测模型。然后使用训练好的预测模型预测输入图像或实时视频流上的路标。 Django Web 框架应该怎样进行密码验证 链接: https://www.youtube.com/watch?v=SRYBDmJlIck Django 内置有可用于密码验证的功能。该视频展示了怎样启用, 配置密码验证功能,如何自定义验证设置,编写自己的密码验证器并将验证方法集成到接口或API中。 用数据科学的方法计算二手车的合理价格 链接: https://t.co/sVcObePjlO 本文记录了使用 DS 方法计算二手车合理价格的整个过程。 一百万对于任何人来说都应该足够 链接: https://lwn.net/SubscriberLink/807218/7589bd420fa9cfbe/ 编程语言通常都有着一些显式或隐式的限制。例如标识符的最大长度, 变量存储值的范围之等等. 还有许多由语言设计者在实现该语言时未明确指定的限制。这种含糊不清会造成严重后果,而 python-dev 邮件一直在讨论确定 Python 语言中的各种限制。

如何找到Python模块源的位置?

雨燕双飞 提交于 2020-02-26 17:06:21
如何了解给定Python模块的源文件的安装位置? Windows和Linux上的方法是否不同? 我正在尝试特别寻找 datetime 模块的来源,但我也对更通用的答案感兴趣。 #1楼 我知道这个答案要晚4年了,但是现有的答案会误导人们。 正确的方法永远不要 __file__ ,或尝试遍历 sys.path 并进行搜索等(除非您需要向后兼容2.1以上)。 它是 inspect 模块-特别是 getfile 或 getsourcefile 。 除非您要学习和实现用于将 .pyc 映射到 .py 文件的规则(对于CPython 2.x,已记录但很痛苦,而对于其他实现或3.x则没有任何记录); 处理.zip归档文件,鸡蛋和模块包; 尝试以不同的方式获得不支持 __file__ .so / .pyd 文件的路径; 弄清楚Jython / IronPython / PyPy的作用; 等等。在这种情况下,请继续努力。 同时,可以从 http://hg.python.org/cpython/file/XY/ (例如 2.7 或 3.3 )在线获取2.0+以后的每个Python版本的源代码。 因此,一旦发现 inspect.getfile(datetime) 是一个 .so 或 .pyd 文件(例如 /usr/local/lib/python2.7/lib-dynload/datetime.so

导入语句是否应该始终位于模块的顶部?

喜夏-厌秋 提交于 2020-02-26 16:35:34
PEP 08 指出: 导入总是放在文件的顶部,紧随任何模块注释和文档字符串之后,以及模块全局变量和常量之前。 但是,如果仅在极少数情况下使用我要导入的类/方法/函数,那么在需要时进行导入肯定会更有效吗? 这不是吗? class SomeClass(object): def not_often_called(self) from datetime import datetime self.datetime = datetime.now() 比这更有效? from datetime import datetime class SomeClass(object): def not_often_called(self) self.datetime = datetime.now() #1楼 当函数被调用零次或一次时,第一种变体的确比第二种变体更有效。 但是,在第二次及其后的调用中,“导入每个调用”方法实际上效率较低。 请参阅 此链接 以获取延迟加载技术,该技术通过执行“延迟导入”结合了两种方法的优点。 但是,除了效率之外,还有其他原因导致您可能会偏爱一个。 一种方法是使阅读该模块相关代码的人更加清楚。 它们还具有非常不同的故障特征-如果没有“ datetime”模块,第一个将在加载时失败,而第二个在调用该方法之前不会失败。 补充说明: 在IronPython中

eval,exec和compile有什么区别?

不羁的心 提交于 2020-02-26 09:36:51
我一直在研究Python代码的动态评估,并遇到 eval() 和 compile() 函数以及 exec 语句。 有人可以解释一下 eval 和 exec 之间的区别,以及不同的 compile() 模式如何适应吗? #1楼 exec用于语句,不返回任何内容。 eval用于表达式,并返回表达式的值。 表达式表示“某事”,而语句表示“做某事”。 #2楼 exec 不是表达式:Python 2.x中的语句和Python 3.x中的函数。 它编译并立即评估字符串中包含的一条语句或一组语句。 例: exec('print(5)') # prints 5. # exec 'print 5' if you use Python 2.x, nor the exec neither the print is a function there exec('print(5)\\nprint(6)') # prints 5{newline}6. exec('if True: print(6)') # prints 6. exec('5') # does nothing and returns nothing. eval 是一个内置函数( 不是 语句),该函数对一个表达式求值并返回该表达式产生的值。 例: x = eval('5') # x <- 5 x = eval('%d + 6' % x) # x

Python Ellipsis对象有什么作用?

爷,独闯天下 提交于 2020-02-26 01:17:05
在闲逛名称空间时,我注意到一个看起来很奇怪的对象“ Ellipsis ”,它似乎并没有做任何特别的事情,但它是一个全局可用的内置对象。 经过搜索,我发现Numpy和Scipy在切片语法的某些晦涩变体中使用了它……但是几乎没有其他东西。 是否将此对象添加到专门支持Numpy + Scipy的语言中? Ellipsis是否有任何一般意义或用途? D:\workspace\numpy>python Python 2.4.4 (#71, Oct 18 2006, 08:34:43) [MSC v.1310 32 bit (Intel)] on win32 Type "help", "copyright", "credits" or "license" for more information. >>> Ellipsis Ellipsis #1楼 它的预期用途不仅应用于这些第三方模块。 在Python文档中没有适当提及它(或者也许我找不到),但是 省略号 ... 实际上 至少在一个地方 用在CPython 中。 它用于表示Python中的无限数据结构。 我在玩列表时遇到了这个符号。 有关更多信息,请参 见此问题 。 #2楼 __getitem__ minimal ... 自定义类中的示例 当魔术语法 ... 在自定义类中传递给 [] 时, __getitem__() 会收到一个

Data-structure used for regexes in the Python standard library (re module)

梦想与她 提交于 2020-02-23 07:14:14
问题 My question is: What is the data-structure implemented by the module re in Python (I am interested in any Python implementation, although I have only looked at the source code of CPython and Pypy). In case you wonder why am I interested, here there is more context: I have been trying to understand the implementation of the re python module. Currently, I am amazed about how fast it is for finding multiple patterns in a string, compared to other data structures I have used like Suffix Trees and

Python Threads are not Improving Speed

时光毁灭记忆、已成空白 提交于 2020-01-30 09:33:12
问题 In order to speed up a certain list processing logic, I wrote a decorator that would 1) intercept incoming function call 2) take its input list, break it into multiple pieces 4) pass these pieces to the original function on seperate threads 5) combine output and return I thought it was a pretty neat idea, until I coded it and saw there was no change in speed! Even though I see multiple cores busy on htop, multithreaded version is actually slower than the single thread version. Does this have

Python C API - Is it thread safe?

陌路散爱 提交于 2020-01-24 10:56:25
问题 I have a C extension that is called from my multithreaded Python application. I use a static variable i somewhere in a C function, and I have a few i++ statements later on that can be run from different Python threads (that variable is only used in my C code though, I don't yield it to Python). For some reason I haven't met any race condition so far, but I wonder if it's just luck... I don't have any thread-related C code (no Py_BEGIN_ALLOW_THREADS or anything). I know that the GIL only