标签: pypy

如何在pypy中注释一个类?

我正在使用 pypy 将一些 python 脚本翻译成 C 语言。假设我有一个这样的 python 类:

class A:
    def __init__(self):
        self.a = 0
    def func(self): 
        pass
Run Code Online (Sandbox Code Playgroud)

我注意到这A.func是一个未绑定的方法而不是一个函数,因此它不能被 pypy 翻译。所以我稍微修改一下代码:

def func(self): 
    pass
class A:
    def __init__(self):
        self.a = 0
A.func = func
def target(*args):
    return func, None
Run Code Online (Sandbox Code Playgroud)

现在func好像可以用pypy翻译了。但是,当我尝试时translate.py --source test.py[translation:ERROR] TypeError: signature mismatch: func() takes exactly 2 arguments (1 given)会引发异常。我注意到这可能是因为我还没有注释self参数。但是这self有类型 A,那么我如何注释一个类呢?

感谢您的阅读和回答。

python pypy annotate

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

NumPyPy 与 Theano?

我想知道:这两个项目基本上有相同的目标吗——加快 Python 中的数值计算速度?

有哪些相同点和不同点?

我知道 Theano 的目标并不像 NumPyPy 那样重新实现所有 NumPy,但从我读到的内容来看,Theano 已经可以带来一些非常令人印象深刻的加速结果。那么,如果我们可以为 Theano 编写运行速度快的代码,为什么还需要 NumPyPy呢?

pypy numpy theano

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

我正在使用 pypyodbc.connect - 有没有办法给它一个应用程序名称?

在 _mssql.connect 中,有一个添加应用程序名称的选项。我想知道 pypyodbc.connect 是否有类似的东西。

谢谢。

python odbc pypy pypyodbc

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

我有哪些选项可以加快 kivy android 应用程序的速度并减小其大小

我想知道打包后我有什么选择可以加速 kivy 的速度。

我正在研究 cython 和 pypy 因为它们应该可以加速 python。另外,我读到 kivy 可能比大多数 Android 应用程序稍慢一些,但更大一些,因为它包含 python 和解释器。我通常会一直搜索直到找到答案,但很难找到有关猕猴桃的东西。

有经验的人可以推荐一些东西来从这个框架中获得更好的速度吗?我正在处理大量代码,因此测试大量此类内容可能会很麻烦。

编辑:132137 于 2017 年 11 月 24 日 19:13 询问

我现在已经打包了很多这个应用程序。在你打包之前我不会太担心 cython 。我还会尝试逐步打包应用程序,以确保一切正常。最重要的是,当我开始包装它时,我真的很担心事情会怎样。我应该早点开始的。尺寸并不是太大的问题。我会尝试在 ubuntu 或 Linux 发行版上编写它(buildozer 不适用于 Windows),并且并非所有内容都会在所有平台上运行相同(我正在使用的某些模块存在一些问题)。我喜欢猕猴桃,这就像我希望当时就知道的 eli5 一样。

经过一番折腾后,我把它减少到了 16mb。所以我对这个框架非常满意。我想我不需要在构建中包含 buildozer 文件夹。我是编程新手,但我对一切的结果感到非常满意。

python pypy cython kivy

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

为pypy安装了numpy但得到“ TypeError:只读属性'__module__'”

我已经以推荐的方式为PyPy 6.0安装了numpy:

./pypy -m ensurepip
./pip install -U pip wheel
./pypy -m pip install numpy
Run Code Online (Sandbox Code Playgroud)

但是,这不起作用(在Ubuntu 16.04上):此安装成功,但是在尝试导入numpy时得到以下信息:

Python 2.7.13 (ab0b9caf307d, Apr 24 2018, 18:04:42)
[PyPy 6.0.0 with GCC 6.2.0 20160901] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>>> import numpy as np
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "/home/jwimberl/src/pypy2-v6.0.0-linux64/site-packages/numpy/__init__.py", line 142, in <module>
    from . import core
  File "/home/jwimberl/src/pypy2-v6.0.0-linux64/site-packages/numpy/core/__init__.py", line 16, in <module>
    from . import multiarray
  File "/home/jwimberl/src/pypy2-v6.0.0-linux64/site-packages/numpy/core/multiarray.py", line …
Run Code Online (Sandbox Code Playgroud)

python pypy numpy

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

在 Google Colab 上找不到程序:“pypy”。解决方案或替代方案?

我在 google colab 笔记本中收到此错误。我是否需要安装某些东西,或者无法在 colab 中使用 pypy?我尝试过这个简单的脚本:

%%pypy
print("hello")

# Couldn't find program: 'pypy'
Run Code Online (Sandbox Code Playgroud)

如果我运行%lsmagic输出如下,其中存在 pypy。

Available line magics:
%alias  %alias_magic  %autocall  %automagic  %autosave  %bookmark  %cat  %cd  %clear  %colors  %config  %connect_info  %cp  %debug  %dhist  %dirs  %doctest_mode  %ed  %edit  %env  %gui  %hist  %history  %killbgscripts  %ldir  %less  %lf  %lk  %ll  %load  %load_ext  %loadpy  %logoff  %logon  %logstart  %logstate  %logstop  %ls  %lsmagic  %lx  %macro  %magic  %man  %matplotlib  %mkdir  %more  %mv  %notebook  %page  %pastebin  %pdb  %pdef  %pdoc  %pfile  %pinfo  %pinfo2  %pip  %popd  %pprint …
Run Code Online (Sandbox Code Playgroud)

python jit pypy python-3.x google-colaboratory

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

Python 2.5(PyPy)兼容的Web服务器/框架

我正在寻找一个简单的Python框架/库来创建使用PyPy运行的网站.

到目前为止,我正在使用web.py,因此我需要这个项目的功能集(有点像模板,会话,输入处理,就是这样).非常简约,如果可能的话.

遗憾的是,web.py与Python 2.5不兼容(至少是PyPy实现的Python 2.5).

编辑添加:解决方案应该能够合理地运行应用程序(在视图,模型等上,对计算很重).安全性不是问题,但在我的机器上,集成的web.py服务器的每20个左右的请求都没有得到解答,留下一个空白的浏览器页面.这是不可接受的.

有这样的事吗?

python pypy python-2.5

2
推荐指数
1
解决办法
1813
查看次数

内插数字序列

我想完成一个不完整的数字列表,我找不到任何pythonic方法来做到这一点.我有一系列的日子从1到31,每天,我有一个浮动值.

#dictionnary{day: value}
monthvalues = {1: 1.12, 2: 3.24, 3: 2.23, 5: 2.10, 7: 4.97} etc.. to 31st day
Run Code Online (Sandbox Code Playgroud)

但我的数据不完整,有些日子不见了!因此,我希望以这种方式以数学方式填充缺失的图片:

样本月1:

{16: 2.00, 18: 4.00}
#==> I want to add to the dictionnary 17: 3.00
Run Code Online (Sandbox Code Playgroud)

样本月2:

{10: 2.00, 14: 4.00}
#==> I want to add to the dictionnary 11: 2.25, 12: 2.50, 13: 2.75
Run Code Online (Sandbox Code Playgroud)

听起来很简单,但我已经完成了数百万行来处理不完整的sql数据库,目前我对xrange()循环很有帮助......也许在数学库中有一个方法,但我找不到它.

谢谢你的帮助!

编辑: 我想插入数字,但据我所知,只有numpy/scipy有这些数学函数,我使用Pypy与numpy/scipy不兼容.

python math pypy

2
推荐指数
1
解决办法
961
查看次数

Python中的字节总是八位字节吗?

可能存在断言失败的Python实现:

assert all(byte in range(256) for byte in any_bytes_object) # Python 3 semantics 
assert all(byte in range(256) for byte in map(ord, any_bytes_object)) # Python 2
Run Code Online (Sandbox Code Playgroud)

POSIX明确指定CHAR_BIT == 8(每字节8位).Python中有类似的保证吗?它在某处记录了吗?

Python 2引用说:"字符代表(至少)8位字节."

如果bytes没有定义name(在旧的Python版本上),例如,在Jython 2.5上,那么问题是关于str类型(bytestrings),即bytes = str在Python 2上.

python pypy jython language-lawyer micropython

2
推荐指数
1
解决办法
818
查看次数

如何使用cffi嵌入在C语言中返回字符串的Python函数?

我正在尝试使用PyPy和cffi将Python函数嵌入C中。我正在遵循PyPy文档中的本指南

问题是,我发现的所有示例都在ints上操作,并且我的函数采用字符串并返回字符串。我似乎无法弄清楚如何将此函数嵌入C中,因为C似乎并没有真正的字符串,而是使用char数组。

这是我尝试过的:

# interface.py

import cffi

ffi = cffi.FFI()
ffi.cdef('''
struct API {
    char (*generate_cool_page)(char url[]);
};
''')

...


@ffi.callback("char[] (char[])")
def generate_cool_page(url):
    # do some processing with BS4
    return str(soup)

def fill_api(ptr):
    global api 
    api = ffi.cast("struct API*", ptr)
    api.generate_cool_page = generate_cool_page
Run Code Online (Sandbox Code Playgroud)

-

// c_tests.c

#include "PyPy.h"
#include <stdio.h>
#include <stdlib.h>

struct API {
    char (*generate_cool_page)(char url[]);
};

struct API api;   /* global var */

int initialize_api(void)
{
    static char source[] =
        "import sys; sys.path.insert(0, '.'); …
Run Code Online (Sandbox Code Playgroud)

c python string pypy python-cffi

2
推荐指数
1
解决办法
832
查看次数