Так что я надеялся написать свой код более упруго, начиная с вершины в python. Я думал об импорте.Импорт пакетов python с python
Я хочу код работать в системах, где не были установлены необходимые пакеты. Чтобы достичь этого, я надеялся установить пакеты в перспективе с помощью python.
try:
import pygame as pg
except(ImportError):
# [install pygame][1] here
# Download and run pygame.MSI (windows)
# apt-get install python-pygame
install pygame Из этого конкретного решения я намерен сделать более обобщенную функцию ...
import subprocess as sp
def imp(inP,name,location):
try:
exec "import "+inP+" as "+(name if name != "" else "")
except ImportError:
try:
os = ????
if(os == windows):
sp.call("pip install "+location,shell=True)
if(os == unix):
sp.call("sudo apt-get install python-"+inP,shell=True)
r = True
except Exception:
print colPrt("ERROR installing ") + inP
r = False
try:
exec "import "+inP+" as "+(name if name != "" else "")
except(ImportError):
print colPrt("ERROR importing ") + inP
r = False
return r
и поэтому мой один вопрос становится 2. Первым быть лучшим придерживаюсь для установки модулей в перспективе, а второй - как это отличается от среды unix и windows.
Ps, colPrt просто возвращает красный текст на терминал
def colPrt(s):
return("\x1B["+"31;40m" + str(s) + "\x1B[" + "0m")
спасибо за ваши мысли:)
FWIW, я считаю, что 'except (ImportError e)' не является правильным синтаксисом. , , – mgilson
С помощью [python wheels] (http://pythonwheels.com) установите программное обеспечение. Если вы установите зависимости в колесе, они будут установлены, когда ваше программное обеспечение будет установлено. Самое приятное в том, что пользователь сделает любое повышение привилегий, необходимое для установки для вас. – tdelaney