如何从Chroot导入Python库?

2024-05-14 20:29:03 发布

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

假设我试图从目录中的库中执行一些代码,我们称之为/home/user/project。在Bash中,它将如下所示:

cd /home/user/project
python -c "from MyLib import DoSth; var = DoSth(); print(var)"

现在我的情况更复杂了。我的Python代码(包括所有已安装的库)位于chroot文件中。我正在监狱外执行密码。我尝试了以下方法:

cd /home/user/project
sudo -- chroot $CHROOT_DIR python3 -c "from MyLib import DoSth; var = DoSth(); print(var)"

这张照片是:

ModuleNotFoundError: No module named 'MyLib'

这是因为监狱中的当前目录只是/,因为之前的cd语句没有在监狱中执行。当我这样尝试时:

sudo -- chroot $CHROOT_DIR cd /home/user/project; python3 -c "from MyLib import DoSth; var = DoSth(); print(var)"

我得到了这个错误:

chroot: failed to run command ‘cd’: No such file or directory

有没有一种不用在监狱里更改目录就可以使用图书馆的方法?或者至少帮我找到一种方法来改变监狱里的目录

编辑:

我想做的是与suggested question完全相反的事情。我试图从监狱外执行代码(完全在监狱内)。代码在监狱里运行得很好,但不是从外面运行的/home/user/project是监狱内的目录


Tags: 方法代码fromimport目录projecthomevar
1条回答
网友
1楼 · 发布于 2024-05-14 20:29:03

我通过运行一个包含我需要的所有命令的脚本来实现这一点,而不是运行单独的命令,因为cd总是无法在chroot上运行(即使目录在内部)。命令如下:

sudo   chroot $CHROOT_DIR /bin/bash /home/user/myscript

在myscript中:

cd /home/user/project
python3 -c "from MyLib import DoSth; var = DoSth(); print(var)"

相关问题 更多 >

    热门问题