簡體   English   中英

在Requirements.txt 中為Virtualenv 指定Python 版本

[英]Specify Python Version for Virtualenv in Requirements.txt

我正在使用 virtualenv 與團隊一起開發 django 應用程序。 我們正在部署的服務器正在運行 python 2.6,但我們機器的默認值是 2.7.3。 有什么方法可以在代碼庫中的 requirements.txt 文件或類似文件中指定 python 版本?

我知道requirements.txt 是pip 的東西,而python 版本是virtualenv 的東西,但是不必告訴每個加入團隊的新人如何設置他們的virtualenv 真的很方便。

pip 和 virtualenv 都不安裝 python(盡管pip 嘗試)。 他們使用您指定的任何內容。

您可以編寫一個 README 來提及所需的 Python 版本,或者提供一個可以部署到本地主機並在那里指定版本的結構腳本。 例如,安裝 virtualenv、pip、distribute 的說明

對於那些不閱讀說明的人,可能有一個 CI 系統( jenkinsbuildbot )可以使用支持的 Python 版本(提交前/提交后)運行單元測試。

要管理多個 python 安裝,您可以使用類似pythonz 的東西。

不必告訴每個加入團隊的新人如何設置他們的 virtualenv 真的很方便

只需將其添加到您在加入時提供給新成員的常規說明中即可; 當你告訴他們內部文檔維基、wifi 密碼和三明治送貨店的電話號碼時,就在同一個地方。

不必告訴人們並讓他們自己弄清楚是非常不方便的 他們第一次提交使用collections.Counter東西時才發現它破壞了構建,因為服務器沒有 2.7.x

你不能把它放在requirements.txt ,但你可以在腳本的頂部添加這個代碼:

import sys
if sys.version_info[0:2] != (2, 6):
    raise Exception('Requires python 2.6')

根據您的評論,這里唯一的問題應該是確保沒有 2.7-only 代碼進入您的代碼庫。 為此,我建議使用tox ,並將其配置為創建2.6環境進行測試,這樣當您的同事運行您的測試套件時,測試將在2.6虛擬環境中運行。

您還可以通過以下命令指定默認 Python:

sudo update-alternatives  --set python /usr/bin/python3.7

暫無
暫無

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

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