我一直在努力理解PyPy的翻译.从简单地阅读描述看起来绝对是革命性的东西,但是我很难找到关于将现实世界的代码实际翻译成诸如LLVM之类的东西的好文档.这样的事情存在吗?关于它的官方PyPy文档只是略过了功能,而不是提供我可以尝试的任何东西.
将pypy实现转换为c文件并在现代笔记本上构建pypy-c需要几个小时,具有2G内存和Intel Core2 2GHz CPU.
我知道这是一项cpu密集型任务,但是它必须这么慢吗?有没有机会或空间来减少计算,重新安排计算顺序并将时间缩短到几十分钟?
RPython是否支持生成器,因为我只是在PyPy的文档中读到了一些内容,但它们并没有
它们似乎很容易被翻译成像C这样的静态类型语言,因为每个生成步骤都是在函数调用中生成的.
有人可以解释原因吗?或者对这个问题有更多的了解.我目前正在尝试学习编写RPython安全代码的基础知识.
我想知道如何在Windows XP 32位上使用PyPy 1.8.我从网站上下载了zip文件并将其安装到My Documents文件中.最初,我认为它与psyco类似,因为我必须"导入psyco",但我发现PyPy.exe的行为与Python命令行相似.
我尝试将我的脚本拖到PyPy.exe中来运行它们,但它似乎根本不起作用.试图在PyPy中使用"python"命令产生了一个"全局名称'python'没有被定义."
所以我希望有人可以帮助我制作PyPy,因为我几乎没有想法.PyPy网站上的文档主要让我困惑,并没有太大帮助.
Ans:我发现我只需右键单击该脚本并"打开"Pypy.exe即可使其正常工作.不知道为什么它不适用于阻力,因为我认为这是相同的.感谢大家.
PyPy是否支持aio和Python 3.5?
我需要性能PyPy和异步代码asyncio.我还需要async/await在我的代码中使用.那可能吗?
如果是这样,有什么细微差别?
我最近尝试过,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(可能没有文档)?
有没有办法使用pypy只是为了编译一个函数而不是我的python程序的其余部分?
我有一个已知的瓶颈,我花了99%的CPU时间(主要包含整数移位和XOR)并在Python中尽可能地优化它.除非绝对必要,否则我不想编写和维护C库.
现在我正在使用Anaconda Python,这是一个普通的python,有很多库.我会使用pypy,除非我不想确保我的所有程序的其余部分都能正常工作.
有没有办法只在一个Python函数上显式运行JIT?
编辑:该函数是GF2(Galois字段)中的模块化乘法步骤
特别:
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) 我正在尝试使用PyPy运行一些代码来加速它.我的代码使用Pandas数据帧,所以我试图找到一种安装包的方法......
不幸的是,我找不到办法做到这一点...在线搜索产生这个和这个 - 两个令人失望的结果,说这是不可能的,但他们是1-2岁!
来自Romain Guillebert的这篇推文发表了一丝希望,暗示我可以使用一种名为pymetabiosis的包来做到这一点.不幸的是,当我去安装它时,我得到下面提到的错误.
知道我怎么可以调试错误或找到一些其他方式使用Pandas与PyPy?**
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) 我正在寻找与 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 重新协调吗?
我在尝试为 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) pypy ×10
python ×8
performance ×2
api ×1
asynchronous ×1
ctypes ×1
generator ×1
jit ×1
jupyter ×1
numba ×1
numpy ×1
pandas ×1
python-3.x ×1
pywin32 ×1
rpython ×1
tensorflow ×1
translation ×1