Столкновение версий Python и символические ссылки - PullRequest
0 голосов
/ 03 февраля 2019

Я хочу использовать Python 3.7 на Raspberry Pi OS Raspbian.Я знаю, что Raspbian уже установлен с Python 2 и не может удалить его.У меня есть Python 2, Python 3.5 и Python 3.7.У меня проблема с символическими ссылками, мне нужно установить некоторые библиотеки с Pip, которые должны называться Pip3.После выполнения Pip3 - версии получаются результаты для Python3.5, которые должны быть для Python 3.7.Pip 3.7 не существует, поэтому я не уверен, что или где pip для Python 3.7.

Это то, что я строю ссылка Для установки программного обеспечения я могу использовать setup.py иливручную пройти и установить все.Вот код, который использует setup.py.

import os
import time

def replace_num(file,initial,new_num):  
    newline=""
    str_num=str(new_num)
    with open(file,"r") as f:
        for line in f.readlines():
            if(line.find(initial) == 0):
                line = (str_num+'\n')
            newline += line
    with open(file,"w") as f:
        f.writelines(newline)

for x in range(1,4):
    if os.system("sudo apt-get update") == 0:
        break

for x in range(1,4):
    if os.system("sudo apt-get -y upgrade") == 0:
        break

for x in range(1,4):
    if os.system("sudo apt-get install -y i2c-tools") == 0:
        break

for x in range(1,4):
    if os.system("sudo pip3 install adafruit-pca9685") == 0:
        break

try:
    #replace_num("/boot/config.txt",'#dtparam=spi=on','dtparam=spi=on')
    replace_num("/boot/config.txt",'#dtparam=i2c_arm=on','dtparam=i2c_arm=on\nstart_x=1\n')
    #replace_num("/boot/config.txt",'#dtparam=i2s=on','dtparam=i2s=on')
except:
    print('try again')

for x in range(1,4):
    if os.system("sudo pip3 install pip setuptools wheel") == 0:
        break

for x in range(1,4):
    if os.system("sudo apt-get install -y swig") == 0:
        break

for x in range(1,4):
    if os.system("sudo apt-get install -y portaudio19-dev python3-all-dev python3-pyaudio") == 0:
        break

for x in range(1,4):
    if os.system("sudo pip3 install pyaudio") == 0:
        break

for x in range(1,4):
    if os.system("sudo apt-get install -y flac") == 0:
        break

for x in range(1,4):
    if os.system("sudo wget https://sourceforge.net/projects/cmusphinx/files/sphinxbase/5prealpha/sphinxbase-5prealpha.tar.gz/download -O sphinxbase.tar.gz") == 0:
        break

for x in range(1,4):
    if os.system("sudo wget https://sourceforge.net/projects/cmusphinx/files/pocketsphinx/5prealpha/pocketsphinx-5prealpha.tar.gz/download -O pocketsphinx.tar.gz") == 0:
        break

for x in range(1,4):
    if os.system("sudo tar -xzvf sphinxbase.tar.gz") == 0:
        break

for x in range(1,4):
    if os.system("sudo tar -xzvf pocketsphinx.tar.gz") == 0:
        break

try:
    os.system("cd sphinxbase-5prealpha/ && ./configure -enable-fixed && make && sudo make install")
    os.system("sudo pip3 install pocketsphinx")
except:
    pass

try:
    os.system("cd pocketsphinx-5prealpha/ && ./configure && make && sudo make install")
    os.system("sudo pip3 install SpeechRecognition")
except:
    pass

try:
    os.system("sudo pip3 install pocketsphinx")
except:
    pass

try:
    os.system("sudo pip3 install SpeechRecognition")
except:
    pass

for x in range(1,4):
    if os.system("sudo apt-get install -y bison libasound2-dev swig") == 0:
        break

for x in range(1,4):
    if os.system("sudo apt-get install -y python3.7 python3-dev python3-pip build-essentsudo apt-get install python3.7l libpulse-dev") == 0:
        break

for x in range(1,4):
    if os.system("sudo apt-get install -y libopencv-dev") == 0:
        break

for x in range(1,4):
    if os.system("sudo apt-get install -y python-opencv") == 0:
        break

for x in range(1,4):
    if os.system("sudo pip3 install imutils") == 0:
        break

for x in range(1,4):
    if os.system("sudo pip3 install opencv-python") == 0:
        break

for x in range(1,4):
    if os.system("sudo apt-get install -y libatlas-base-dev libjasper-dev libqtgui4 python3-pyqt5 libqt4-test") == 0:
        break

for x in range(1,4):
    if os.system("sudo pip3 install zmq pybase64") == 0:   ####
        break

for x in range(1,4):
    if os.system("sudo pip3 install rpi_ws281x") == 0:
        break

for x in range(1,4):
    if os.system("git clone https://github.com/oblique/create_ap") == 0:
        break

try:
    os.system("sudo cd //home/pi/adeept_picar-b/server/create_ap && sudo make install")
except:
    pass

for x in range(1,4):
    if os.system("sudo apt-get install -y util-linux procps hostapd iproute2 iw haveged dnsmasq") == 0:
        break

try:
    os.system('sudo mknod("//home/pi/.config/autostart/car.desktop")')
    with open("//home/pi/.config/autostart/car.desktop",'w') as file_to_write:
        file_to_write.write("[Desktop Entry]\n   Name=Car\n   Comment=Car\n   Exec=sudo python3 //home/pi/adeept_picar-b/server/server.py\n   Icon=false\n   Terminal=false\n   MutipleArgs=false\n   Type=Application\n   Catagories=Application;Development;\n   StartupNotify=true")
except:
    pass

os.system("sudo cp -f //home/pi/adeept_picar-b/server/set.txt /home/pi/set.txt")

try:
    os.system("sudo pip3 install pocketsphinx")
except:
    pass

print('restarting')

os.system("sudo reboot")

Я пытался установить оба способа, я считаю, что причина в том, что программы используют Python3.7, но Python3.5 устанавливается через установку.ру.

Так что теперь в ОС установлены Python3.5 Python3.7 и Python2, мне нужно использовать pip для установки пакетов, и я не могу найти Python3.7 pip.команда pip3 возвращает "python3.5", команда pip3.7 не существует.Как я могу удалить символическую ссылку для pip3 из Python3.5 в Pyton3.7, которую я потратил много времени на эту установку, чтобы переформатировать и начать заново, чтобы это не вариант.

...