为什么我的virtualenv python3可以在本地机器上正常工作,但在我将virtualenv上传到服务器时却不行?

2024-04-29 01:18:57 发布

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

若我在本地机器上安装了virtualenv,激活它并尝试运行python3,那个么它可以正常工作(使用导入的模块)。但是,在我将其发送到live server(使用scp和filezilla)后,会出现以下错误:

-bash: /<path>/venv4/bin/python3: cannot execute binary file: Exec format error

在同一个包中,python和python3.8也会发生这种情况

我尝试重新安装virtualenv和pipx,重新创建virtualenv并重新加载了几次

似乎找不到模块,因为当我在live server上激活virtualenv并键入“which python3”时,它会显示系统python3:

/usr/bin/python3

如果我尝试使用完整路径直接执行venv的python3,它也不会起作用

我这样做的原因是因为我使用的旧virtualenv已经停止工作,因为它似乎再也找不到已安装的模块了。我不知道为什么

任何帮助都将不胜感激


Tags: 模块pathbash机器liveexecutebinserver
1条回答
网友
1楼 · 发布于 2024-04-29 01:18:57

我相信一些pip包不仅仅包含python代码,而且必须编译。如果主机操作系统与服务器操作系统不同,或者安装了不同的库,则主机编译的代码将与服务器不兼容

通常的做法是创建一个包含所需包列表的文件,使用

pip freeze > requirements.txt

并在服务器上重建环境,使用类似

pip install -r requirements.txt

相关问题 更多 >