簡體   English   中英

如何將.py 文件上傳到 Linux 服務器而不出錯

[英]How Can I Upload .py File to Linux Server Without Error

我有一個網站,用戶通過 HTML forms 輸入信息,PhP 是處理 ZAC68B42ABFD6A9FE2CZC8 的服務器端腳本。 但是,PhP 將該信息傳遞給服務器上的各種.py 文件,.py 文件分析信息並將結果返回給 PhP,然后顯示給用戶。

我使用 PyCharm 作為本地測試環境來起草和測試 .py 文件,然后再將它們部署到站點。 我遇到的問題與將 .py 文件發送到服務器有關。

選項 1:如果我只是將 .py 文件從本地計算機上傳到遠程 Linux 服務器並添加適當的 shebang 行以引用我服務器上的相關 python venv,它們永遠不會工作。 即使我注釋掉文件中的所有內容並起草一些基本的 2 行程序來測試它,它也不起作用。

選項 2:相反,如果我在服務器上創建新的 blank.py 文件,然后將本地計算機上文件中的代碼剪切並粘貼到這些 blank.py 文件中(並添加相關的 shebang 以引用我的 venv),瞧,它有效。 在這種情況下,我小心翼翼地在第一個字符之后開始剪切並在最后一個字符之前結束。 然后我只是在粘貼后修復它。 我這樣做是為了避免在 PyCharm IDE 中復制我無法“看到”的任何隱藏代碼/標簽。

這讓我覺得 PyCharm 嵌入了某種隱藏代碼/標簽,這在 IDE 本身中並不明顯? 真的嗎? 我已經閱讀了有關將軟件部署到遠程服務器的 PyCharm 文檔,但是當我只需要將一兩個文件上傳到我的服務器時,所描述的過程對我來說似乎過於復雜。 此外,文檔中沒有任何內容表明您必須遵循該過程,否則您的 .py 文件將無法在其他機器上運行。

有誰知道:(a)為什么不能簡單地將 your.py 文件直接上傳到 Linux 服務器; (b) 如果在 PyCharm 中有一個簡單的選項可供選擇,這樣我就可以避免這個問題?

Windows 和 Linux 使用不同的字符來表示一個新行。 Windows 使用 CRLF(回車,換行),而 Linux 使用 LF。 這意味着如果您將任何文本文件從 Windows 復制到 Linux,它可能無法正常工作(反之亦然)。 您的 python 文件無法正常工作,因為它們是在 Windows 上創建的並且使用了錯誤的換行符。

為了解決這個問題,Linux 中有多種命令行工具可以將所有 CRLF 字符轉換為 LF。 這里有些例子:

  1. 如何在 Bash 腳本中將 DOS/Windows 換行符 (CRLF) 轉換為 Unix 換行符 (LF)?
  2. 轉換行尾
  3. https://askubuntu.com/questions/803162/how-to-change-windows-line-ending-to-unix-version

暫無
暫無

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

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