标签: pypy

我在哪里可以了解更多有关PyPy翻译功能的信息?

我一直在努力理解PyPy的翻译.从简单地阅读描述看起来绝对是革命性的东西,但是我很难找到关于将现实世界的代码实际翻译成诸如LLVM之类的东西的好文档.这样的事情存在吗?关于它的官方PyPy文档只是略过了功能,而不是提供我可以尝试的任何东西.

python translation pypy

9
推荐指数
1
解决办法
1236
查看次数

为什么PyPy翻译得这么慢?

将pypy实现转换为c文件并在现代笔记本上构建pypy-c需要几个小时,具有2G内存和Intel Core2 2GHz CPU.

我知道这是一项cpu密集型任务,但是它必须这么慢吗?有没有机会或空间来减少计算,重新安排计算顺序并将时间缩短到几十分钟?

pypy

9
推荐指数
1
解决办法
1104
查看次数

是RPython支持的生成器?

RPython是否支持生成器,因为我只是在PyPy的文档中读到了一些内容,但它们并没有

PyPy Doc - 编码指南

它们似乎很容易被翻译成像C这样的静态类型语言,因为每个生成步骤都是在函数调用中生成的.

有人可以解释原因吗?或者对这个问题有更多的了解.我目前正在尝试学习编写RPython安全代码的基础知识.

python pypy generator rpython

9
推荐指数
1
解决办法
1167
查看次数

如何在Windows上使用PyPy?

我想知道如何在Windows XP 32位上使用PyPy 1.8.我从网站上下载了zip文件并将其安装到My Documents文件中.最初,我认为它与psyco类似,因为我必须"导入psyco",但我发现PyPy.exe的行为与Python命令行相似.

我尝试将我的脚本拖到PyPy.exe中来运行它们,但它似乎根本不起作用.试图在PyPy中使用"python"命令产生了一个"全局名称'python'没有被定义."

所以我希望有人可以帮助我制作PyPy,因为我几乎没有想法.PyPy网站上的文档主要让我困惑,并没有太大帮助.

Ans:我发现我只需右键单击该脚本并"打开"Pypy.exe即可使其正常工作.不知道为什么它不适用于阻力,因为我认为这是相同的.感谢大家.

python pypy

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

PyPy可以与asyncio一起使用吗?

PyPy是否支持aio和Python 3.5?

我需要性能PyPy和异步代码asyncio.我还需要async/await在我的代码中使用.那可能吗?

如果是这样,有什么细微差别?

python performance asynchronous pypy python-asyncio

9
推荐指数
1
解决办法
3262
查看次数

以便携/快速方式获取指向Numpy/Numpypy数据的指针

我最近尝试过,PyPy并对这种方法很感兴趣.我有很多Python的C扩展,它们都PyArray_DATA()用来获取指向numpy数组数据部分的指针.不幸的是,PyPy似乎没有numpypy在他们的cpyext模块中导出他们的数组的等价物,所以我尝试按照他们网站上的推荐使用ctypes.这推动了获取Python级别指针的任务.

似乎有两种方式:

import ctypes as C
p_t = C.POINTER(C.c_double)

def get_ptr_ctypes(x):
    return x.ctypes.data_as(p_t)

def get_ptr_array(x):
    return C.cast(x.__array_interface__['data'][0], p_t)
Run Code Online (Sandbox Code Playgroud)

只有第二个适用于PyPy,因此为了兼容性,选择很明确.对于CPython来说,两者都很慢,我的应用程序完全成为瓶颈!是否有快速便携的方法来获取此指针?或者是否有相当于PyArray_DATA()PyPy(可能没有文档)?

python api ctypes pypy numpy

8
推荐指数
1
解决办法
1542
查看次数

Python:已知瓶颈的JIT

有没有办法使用pypy只是为了编译一个函数而不是我的python程序的其余部分?

我有一个已知的瓶颈,我花了99%的CPU时间(主要包含整数移位和XOR)并在Python中尽可能地优化它.除非绝对必要,否则我不想编写和维护C库.

现在我正在使用Anaconda Python,这是一个普通的python,有很多库.我会使用pypy,除非我不想确保我的所有程序的其余部分都能正常工作.

有没有办法只在一个Python函数上显式运行JIT?


编辑:该函数是GF2(Galois字段)中的模块化乘法步骤

https://bitbucket.org/jason_s/libgf2/src/a71a14a035468e703a7c24349be814419cdba2cb/src/libgf2/gf2.py?at=default

特别:

def _gf2mulmod(x,y,m):
    z = 0
    while x > 0:
        if (x & 1) != 0:
            z ^= y
        y <<= 1
        y2 = y ^ m
        if y2 < y:
            y = y2
        x >>= 1
    return z
Run Code Online (Sandbox Code Playgroud)

它需要为bigints工作,所以我不确定如何重写为Cython兼容.

我刚刚尝试了numba的@autojit,但它失败了,因为它不知道要使用哪些变量类型并假设小整数.我似乎无法弄清楚如何告诉它使用标准的Python bigints.

Traceback (most recent call last):
  File "/Users/jason_s/Documents/python/libgf2/src/libgf2/gf2.py", line 440, in <module>
    dlog43 = GF2DiscreteLog(0x100000000065)
  File "/Users/jason_s/Documents/python/libgf2/src/libgf2/gf2.py", line 295, in __init__
    factors = _calculateFactors(poly)
  File "/Users/jason_s/Documents/python/libgf2/src/libgf2/gf2.py", line 264, in _calculateFactors
    if (e1 …
Run Code Online (Sandbox Code Playgroud)

python jit pypy numba

8
推荐指数
2
解决办法
629
查看次数

有没有办法用PyPy安装Pandas?

我正在尝试使用PyPy运行一些代码来加速它.我的代码使用Pandas数据帧,所以我试图找到一种安装包的方法......

不幸的是,我找不到办法做到这一点...在线搜索产生这个这个 - 两个令人失望的结果,说这是不可能的,但他们是1-2岁!

来自Romain Guillebert的这篇推文发表了一丝希望,暗示我可以使用一种名为pymetabiosis的包来做到这一点.不幸的是,当我去安装它时,我得到下面提到的错误.

知道我怎么可以调试错误或找到一些其他方式使用Pandas与PyPy?**


安装pymetabiosis时出现错误信息:

Collecting pymetabiosis
  Using cached pymetabiosis-0.0.1.tar.gz
    Complete output from command python setup.py egg_info:
    pymetabiosis/__pycache__/_cffi__x771a6f66x197b9d2b.c:219:13: warning: initializing 'char **' with an expression of type 'const char **' discards qualifiers in nested pointer types [-Wincompatible-pointer-types-discards-qualifiers]
      { char * *tmp = &p->ml_name; (void)tmp; }
                ^     ~~~~~~~~~~~
    pymetabiosis/__pycache__/_cffi__x771a6f66x197b9d2b.c:220:13: warning: incompatible pointer types initializing 'void **' with an expression of type …
Run Code Online (Sandbox Code Playgroud)

python performance pypy compiler-optimization pandas

8
推荐指数
2
解决办法
2919
查看次数

pypy 与 tensorflow 兼容吗?

我正在寻找与 pypy 兼容的轮子,但没有成功。

pypy3 -m pip install https://files.pythonhosted.org/packages/f4/28/96efba1a516cdacc2e2d6d081f699c001d414cc8ca3250e6d59ae657eb2b/tensorflow-1.14.0-cp37-cp37m-manylinux1_x86_64.whl 
Defaulting to user installation because normal site-packages is not writeable
ERROR: tensorflow-1.14.0-cp37-cp37m-manylinux1_x86_64.whl is not a supported wheel on this platform
Run Code Online (Sandbox Code Playgroud)

配置:

?  pypy3 --version
Python 3.6.9 (7.3.0+dfsg-1~ppa1~ubuntu19.04, Dec 26 2019, 11:14:16)
[PyPy 7.3.0 with GCC 8
Run Code Online (Sandbox Code Playgroud)

如果轮子不存在,我应该从源代码构建 tensorflow 吗?它会被 pypy 重新协调吗?

pypy python-3.x tensorflow

8
推荐指数
0
解决办法
2416
查看次数

将 pypy3 设置为 Jupyter Notebook 的内核时出现问题

我在尝试为 Windows 10 机器上的 Jupyter Notebook 设置 pypy3 内核时遇到问题。

按照这 2 个其他相关线程 ( 1 , 2 ) 的说明,我已经使用ipykernel了该命令,pypy3 -m pip install ipykernel但似乎安装在某些时候遇到了错误:

Collecting ipykernel
  Using cached ipykernel-5.2.1-py3-none-any.whl (118 kB)
Collecting ipython>=5.0.0
  Using cached ipython-7.14.0-py3-none-any.whl (782 kB)
Collecting traitlets>=4.1.0
  Using cached traitlets-4.3.3-py2.py3-none-any.whl (75 kB)
Collecting jupyter-client
  Using cached jupyter_client-6.1.3-py3-none-any.whl (106 kB)
Collecting tornado>=4.2
  Using cached tornado-6.0.4.tar.gz (496 kB)
Requirement already satisfied: setuptools>=18.5 in c:\pypy3\site-packages (from ipython>=5.0.0->ipykernel) (44.0.0)
Collecting jedi>=0.10
  Using cached jedi-0.17.0-py2.py3-none-any.whl (1.1 MB)
Collecting decorator
  Using …
Run Code Online (Sandbox Code Playgroud)

python pypy pywin32 jupyter jupyter-notebook

8
推荐指数
1
解决办法
556
查看次数