ユーザー環境をチェックして、python
インストールされているかどうかを確認するクラスがあります。クラスの目的は、ユーザーが複数のバージョンの python をインストールしているかどうかを確認し、デフォルトで 3 つにしないようにすることです。
class CheckForPythonicVariables
class << self
def find_python_env_var
py_path = [] # Results of the python env variables
env_vars = ENV.to_h
items = env_vars["Path"].split(";") # Split the environment variables into an array
items.each { |var|
if var.to_s.include?("Python") # Do you have python?
py_path.push(var)
end
}
py_path.each { |python|
if python.include?("Python27") # Python 2.7.x?
return true
elsif python.include?("Python3") # Python 3.x.x?
return false
else
raise "You do not have python installed"
end
}
end
end
end
これで動作しますが、Windows と選択された少数の Linux でのみ動作しますがOS
、明らかParrot
にそれらの 1 つではありません。#split()
文字以外で環境変数を指定する方法はありますか? 例えば:
Windows 環境変数: C:\Python27\;C:\Python27\Scripts;C:\ProgramData\Oracle\Java\javapath
Parrot OS 環境変数:/usr/local/bin:/usr/bin:/bin:/usr/local/games:/usr/games
変数がセミコロン ( ;
) またはコロン ( ):
で分割されていることに注意してください。ルビで関数を使用して、#split()
英数字または数字以外で分割する方法はありますか? python 2.7.x
または、ユーザーが環境変数を持っていることを確認するより良い方法はありますか?