创建pypy进程

2024-06-30 15:26:14 发布

您现在位置:Python中文网/ 问答频道 /正文

我想创建一个py进程。我尝试了以下方法,效果很好:

import os
os.chdir('<path-to-pypy-download>/bin/')
os.execl('pypy', 'pypy', '-c', 'print "Hi!"')

但是,当我删除chdir作为:

^{pr2}$

我得到:

debug: WARNING: Library path not found, using compiled-in sys.path.
debug: WARNING: 'sys.prefix' will not be set.
debug: WARNING: Make sure the pypy binary is kept inside its tree of files.
debug: WARNING: It is ok to create a symlink to it from somewhere else.
debug: OperationError:
debug:  operror-type: ImportError
debug:  operror-value: No module named os

请问,有人知道如何在不更改工作目录的情况下生成PyPy进程吗?在


Tags: topath方法pydebug进程isos
1条回答
网友
1楼 · 发布于 2024-06-30 15:26:14

这可能不正确(在这种情况下,我将删除它),但我确信您需要做的只是:

os.execl('<path-to-pypy-download>/bin/pypy', 
         '<path-to-pypy-download>/bin/pypy', '-c', 'print "Hi!"')

换句话说,传递^{} as well as ^{}的完整路径。在

为什么?当PyPy启动时,它必须使用(RPython/compiled-to-C等价物)^{}来查找到自定义stdlib的路径。它还能用什么呢?这当然是从传递给解释器的char *argv[]参数复制而来的。当你让操作系统为你启动一个程序时,它会把完整的路径放进去。但是当你用execl显式地设置它时,它只会复制您给它的任何内容。在

它实际上是一个比这个更复杂的它做了一个readlink(允许符号链接)和一个abspath(允许自己像第一个例子中那样通过相对路径运行)。但基本思路是一样的。在

{py>在这种情况下,{py>可能需要使用一个完整的py来安装它。在

相关问题 更多 >