簡體   English   中英

為什么我的 virtualenv python3 在我的本地機器上工作正常,但當我將 virtualenv 上傳到服務器時卻不行?

[英]Why does my virtualenv python3 work fine on my local machine but not when I upload the virtualenv to the server?

如果我在本地機器上安裝 virtualenv,激活它並嘗試運行 python3,那么它工作正常(使用導入的模塊)。 但是,在我將它發送到實時服務器(使用 scp 和 filezilla)之后,它給出了錯誤:

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

在同一個 package 中的 python 和 python3.8 也會發生這種情況。

我嘗試重新安裝 virtualenv 和 pipx,重新創建 virtualenv 並重新上傳幾次。

似乎找不到該模塊,因為當我在實時服務器上激活 virtualenv 並鍵入“which python3”然后它向我顯示系統 python3:

/usr/bin/python3

如果我嘗試使用完整路徑直接執行 venv 的 python3,它也不起作用。

我這樣做的原因是因為我使用的舊 virtualenv 已經停止工作,因為它似乎無法再找到已安裝的模塊。 我不確定為什么。

任何幫助將非常感激。

我相信一些 pip 包不僅僅包含 python 代碼,而且必須編譯。 如果您的主機操作系統與您的服務器操作系統不同,或者您安裝了不同的庫,則主機編譯的代碼將與您的服務器不兼容。

常見的做法是創建一個包含所需包列表的文件,使用類似的東西

pip freeze > requirements.txt

並在服務器上重建環境,使用類似的東西

pip install -r requirements.txt

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM