ユーザ環境に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
はそのうちの一つではありません。私は#split()
環境変数が手紙ではない何かによってできる方法がありますか?たとえば:
のWindowsのenv VAR:C:\Python27\;C:\Python27\Scripts;C:\ProgramData\Oracle\Java\javapath
オウムOS用のenv VAR:変数はセミコロン(;
)またはコロン(:
)のいずれかによって分割されているか/usr/local/bin:/usr/bin:/bin:/usr/local/games:/usr/games
注意、方法私はそこにありますルビーで#split()
関数を使用し、英数字以外の数字で分割することはできますか?または、ユーザが環境変数にpython 2.7.x
を持っていることを確認する良い方法がありますか?
はたぶん、あなたは、単に二回の分割を使用することができますか?または、OS:MS-DOSまたはUnixによれば、あなたは正しいセパレータを選択しましたか? 代わりに、Rubyのコマンドライン/シェルを使用してpythonのバージョンを問い合わせることができますか? 'python -V' – Hugo
@Hugoシステムコールの問題( 'system( 'python --version')'私はそれを考えました)は、複数のバージョンのPythonを持っている場合、デフォルトは3になります。 – User9123