Python生產環境用Virtualenv來管理依賴環境(TMPDIR=/tmp cannot hold executables繞過方法)

文章目錄

前文

  在開發環境使用Python創建程序的時候,我們喜歡用pyenv+virtualenv來管理,不過在生產環境因爲機器的限制,有的時候就用不上pyenv,比如當我安裝好pyenv的時候,想pyenv install 3.6.8安裝Python3.6.8時就報錯如下:

TMPDIR=/tmp cannot hold executables (partition possibly mounted with `noexec`)

  這個的解決也是非常輕鬆,如問題描述因爲tmp目錄掛載方式出錯,而這個是運維同事針對生產環境所做的限制,所以無法改變,相應的解決方法查看這個issue:https://github.com/rbenv/ruby-build/issues/703

解決

  生產環境也可以只用virtualenv來管理,往往只有Python2和Python3兩套環境即可,然後就是不同項目的依賴包不同,所以僅要下載Python3即可(2自帶),然後通過建立不同的env來配置不同的項目依賴包,具體如下操作:

  1. pip安裝virtualenv:pip install virtualenv
  2. 如果不存在pip:yum install python-pip
  3. 利用virtualenv創建(我取名環境爲py36env):/usr/local/bin/virtualenv -p /usr/bin/python3.6 py36env
      爲了管理方便通常直接在項目下創建該env目錄比較好,這樣每次進入該項目,就可以直接利用env來管理,並且安裝包直接進入py36env/bin/activate即可,命令是:
source py36env/bin/activate
pip install package

總結

  開發環境用pyenv+virtualenv可以完美實現多版本的python虛擬環境,針對不同的項目可以體驗不同版本的特性,而生產環境直接用virtualenv即可。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章