executando sac2xy retorna sac2xy: não é possível executar o arquivo binário no osx 10.9

0

Eu tenho um script Python para plotagem de dados que usa sac2xy, mas dá um erro ao executar sac2xy:

sh: sac2xy: command not found

a parte relevante do código é:

os.system("sac ./tmp/sac.m")
os.system("clear")
os.system("sac2xy ./tmp/n_"+filename[i]+".am ./tmp/n_"+filename[i]+".xy")
os.system("sac2xy ./tmp/c_"+filename[i]+".am ./tmp/c_"+filename[i]+".xy")

c_amp = []
c_f = []
n_amp = []
n_f = []
fopen = open("./tmp/c_"+filename[i]+".xy")
for line in fopen:
    c_f.append(float(line.split()[0]))
    c_amp.append(float(line.split()[1]))
fopen.close()

fopen = open("./tmp/n_"+filename[i]+".xy")
for line in fopen:
    n_f.append(float(line.split()[0]))
    n_amp.append(float(line.split()[1]))
fopen.close()
user2721585
fonte
Você se importaria de postar seu script Python (ou as partes relevantes dele)? Além disso, postar a saída de which sac2xy?
BenjiWiebe
parte do código que usa sac2xy: & gt; os.system ("sac ./tmp/sac.m") os.system ("limpar") os.system ("sac2xy ./tmp/n_"+filename[i] + ". am ./tmp/n_"+filename[i]+".xy") os.system ("sac2xy ./tmp/c_"+filename[i]+".am ./tmp/c_"+filename [i] + ". xy") c_amp = [] c_f = [] n_amp = [] n_f = [] fopen = open ("./tmp/c_" + nome_do_arquivo [i] + ". xy") para entrada de linha fopen: c_f.append (float (line.split () [0])) c_amp.append (flutuante (line.split () [1])) fopen.close () fopen = aberto ("./tmp/n_" + filename [i] + ". xy") para linha em fopen: n_f.append (float (line.split () [0])) n_amp.append (float (line.split () [1])) fopen. perto()
user2721585
Experimentar sudo chmod +x /usr/bin/sac2xy ou, se isso não funcionar, tente sudo chmod +x /usr/local/bin/sac2xy.
BenjiWiebe

Respostas:

0

Não é possível localizar o executável. Vá para um shell e digite:

type sac2xy

Isso dará o caminho para o executável. É uma boa idéia especificar o caminho completo para um executável de qualquer maneira; Ele economiza tempo de pesquisa e garante que você está executando o executável desejado, em vez de algum outro executável que um invasor possa ter colocado em algum lugar.

Observe que os.system está agora obsoleto. o subprocess módulo deve ser usado para novos programas.

Tom Zych
fonte
-bash: tipo: sac2xy: não encontrado ihave tenho um arquivo binário chamado sac2xy que em si não é executável, e como eu estou trabalhando em melhorar o programa já feito, obrigado pelo módulo subprocess
user2721585
Quer dizer que você tem um arquivo de dados chamado sac2xy, que impede a pesquisa de caminho de encontrar o executável do mesmo nome?
Tom Zych
Sim sac2xy é um arquivo binário a ser usado pelo código
user2721585
Você consegue executá-lo a partir da linha de comando? É executável? O que você recebe de ls sac2xy?
Tom Zych
Não é possível executar o arquivo binário .
user2721585