Python

如何執行我編譯的python而不是系統安裝的一個

  • August 5, 2018

我已經從原始碼編譯了 python3.6.5 並將其連結到我編譯的 openssl,如下所示:

export LDFLAGS="-L/usr/local/openssl/lib/ -L/usr/local/openssl/lib64/"
export LD_LIBRARY_PATH="/usr/local/openssl/lib/:/usr/local/openssl/lib64/"
export CPPFLAGS="-I/usr/local/openssl/include -I/usr/local/openssl/include/openssl"
./configure --prefix=/usr/local/openssl/
make
make install

並且 openssl 安裝如下:

./config --prefix=/usr/local/openssl --openssldir=/usr/local/openssl shared zlib
make
make install

/my/path/在上面的說明中替換為/usr/local/openssl/openssl 也是在 Ubuntu 18 中建構的,但我從原始碼編譯它,因為系統缺少一些我需要的功能。

現在,我想使用我的編譯 python 而不是系統執行我的 python 程序。這該怎麼做?如果我寫 python myprog.py,它將執行系統的 python。

如果您在以下位置安裝了自定義 Python /some/path

  1. 添加shebang行將在myscript.py將其作為可執行腳本執行時選擇自定義python:
#!/some/path/bin/python
import sys
print(sys.version)

執行腳本:

$ chmod +x myscript.py
$ ./myscript.py
2.7.10 (default, Oct  6 2017, 22:29:07)
[GCC 4.2.1 Compatible Apple LLVM 9.0.0 (clang-900.0.31)]
  1. 您可以將路徑顯式傳遞給 python 執行檔以執行腳本:
$ /some/path/bin/python myscript.py
  1. 前置/some/path/binPATH選擇自定義 python 而不是系統之一:
$ PATH=/some/path/bin:$PATH python myscript.py

./configure --prefix=/usr/local/openssl/從您提供的行來看,您似乎在 ; 下安裝了自定義 Python /usr/local/openssl。因此 bin 目錄應該是/usr/local/openssl/bin.

引用自:https://unix.stackexchange.com/questions/460588