簡體   English   中英

在編寫腳本時在python 2和3版本之間切換

[英]switching between python 2 and 3 versions while scripting

我通常用python 2.7開發,但是想在python 3.x中開始創建一些工具。 什么是最簡單的方法,讓兩個並排運行,同時保持對我安裝的庫的一些控制...

如果我使用pyenv在版本之間切換,它會傳播到通用的shebang線嗎? 就像是

#!/usr/bin/env python

甚至更好,我可以指定shebang中的哪個python?

#!/usr/bin/env python3

我期待很多“使用virtualenv ”回復。 這真的是唯一的方法嗎? 我覺得我想在我的系統上安裝“基礎”python和我安裝的任何庫,這樣我就可以通過輸入像pyenv global 3.2.3這樣簡單的東西來改變這兩種環境。

我目前正在使用OSX,Mountain Lion。


試着更好地解釋一下,我有兩個替代問題:

  • 如果我使用像virtualenv這樣的東西,我是否會失去交替運行python2和python3腳本的能力,而不會改變環境(即只通過shebang)?

  • 相反,如果我使用兩個獨立版本安裝,我如何控制/知道pipeasy_install將安裝什么。


更新 :目前在shebang行使用python3 ,並使用pip3安裝包到python3 ...似乎工作正常。

你有一些可能的方法與os稍微變化:

  1. 將python 2調用為python,將3調用為python3
  2. .py和.py3的擴展名
  3. VIRTUALENV
  4. 用於切換環境的腳本或批處理文件。 我使用它來測試我的代碼對不同版本的python 2.請注意,您可以在不同的命令會話中同時設置不同的環境。
  5. 在虛擬機中測試。
  6. 使用允許您在項目或調試會話的基礎上指定python版本的IDE我使用WingIDE但它不是唯一允許這樣做的版本。

你可能需要付費才能看到6並在python 3中工作,而不是將舊版安裝轉換為2.7。

另請參見此處了解如何使用virtualevn和不使用(在適當時修改版本號)在python 3下安裝python 3庫。

更新 - Windows python啟動器

此外,在Windows上,當您安裝Python 3時,您可以選擇將python啟動程序(py.exe和pyw.exe)安裝到Windows目錄中。 py啟動器具有以下行為:

  • py 啟動python 3交互式最新安裝提示(首選64位)
  • py -2 啟動python 2交互式最新安裝提示(首選64位)
  • py somescript *檢查指定文件中的shebang並使用python 2(默認情況下,如果沒有shebang)或適當的3啟動它。
  • py -2 somescript 在最新的python 2下啟動腳本(64位首選)
  • py -3 somescript 在python 3下啟動腳本(64位首選)
  • py -3.5 somescript 在python 3.5下啟動腳本(64位首選)
  • py -3.5-32 somescript 在python 3.5(32位)下啟動腳本
  • pyw啟動器在沒有控制台的情況下具有相同的行為, 如pythonw。

將.py文件與py.exe和.pyw文件與pyw.exe關聯將導致shebang行被尊重。

另外使用py -3.5-32 -m pip install some_package將專門安裝some_package到32位python 3.5安裝等。

免責聲明:我是python啟動器的一些即將增強的作者,稍微擴展了上述選項。

暫無
暫無

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

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