Предыдущая тема :: Следующая тема |
Автор |
Сообщение |
Женик
ЛА
 Зарегистрирован: 12.03.2010
Сообщения: 758 Благодарности: 361
Откуда: Гомель
|
Добавлено: Пт Май 04, 2018 14:27 Заголовок сообщения: Планетарий PyStars |
|
|
Здравствуйте.
Написал небольшой планетарий на языке Python. По образованию я не программист, программу стал писать просто из любопытства (что за питон такой?...) Потом втянулся, и получилось то, что получилось.
В общем, программа тут:
http://www.ekosterev.belastro.net/pystars.htm
[/url]
_________________ http://ekosterev.belastro.net/
Поблагодарили(2): Alexander, Lupus |
|
|
Вернуться к началу |
|
 |
Alexander
ЛА
 Зарегистрирован: 08.10.2008
Сообщения: 2697 Благодарности: 199
Откуда: Минск
|
Добавлено: Пт Май 04, 2018 14:34 Заголовок сообщения: |
|
|
Что-то оно под линуксом не особо хочет запускаться. Сначала было так:
Код: | /usr/bin/python3 ./PyStars.py
==================================PyStars V.1.0================================
author of the program: Evgeniy Kosterev, Belarus, Gomel
project home page: http://www.ekosterev.belastro.net/pystars.htm
===============================================================================
Traceback (most recent call last):
File "/usr/lib/python3.5/tkinter/__init__.py", line 36, in <module>
import _tkinter
ImportError: No module named '_tkinter'
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
File "./PyStars.py", line 10, in <module>
from tkinter import *
File "/usr/lib/python3.5/tkinter/__init__.py", line 38, in <module>
raise ImportError(str(msg) + ', please install the python3-tk package')
ImportError: No module named '_tkinter', please install the python3-tk package |
OK, поставил python3-tk. Теперь так:
Код: | /usr/bin/python3 ./PyStars.py
==================================PyStars V.1.0================================
author of the program: Evgeniy Kosterev, Belarus, Gomel
project home page: http://www.ekosterev.belastro.net/pystars.htm
===============================================================================
program.ini ... OK
constlabel.dat ... OK
data source: constlabel.cla from Cartes du Ciel
https://www.ap-i.net/skychart/ru/start
asteroids.txt ... OK
data source: Minor Planet Center
https://minorplanetcenter.net/iau/Ephemerides/Bright/2017/Soft01Bright.txt
comets.txt ... OK
data source: Minor Planet Center
https://minorplanetcenter.net/iau/Ephemerides/Comets/Soft01Cmt.txt
catalog.dat ... OK
data source: The Bright Star Catalogue
http://tdc-www.harvard.edu/catalogs/bsc5.html
hipparcos.dat ... OK
data source: VizieR query
http://vizier.u-strasbg.fr/viz-bin/VizieR
dso1.dat ... OK
data source: Deepsky level 1.hnd from HNSKY
http://www.hnsky.org/
dso2.dat ... OK
data source: Deepsky level 2.hnd from HNSKY
http://www.hnsky.org/
ConstLCoord.dat ... OK
data source: DefaultConstL.cln from Cartes du Ciel
https://www.ap-i.net/skychart/ru/start
constb.dat ... OK
data source: constb.cby from Cartes du Ciel
https://www.ap-i.net/skychart/ru/start
===============================================================================
Traceback (most recent call last):
File "./PyStars.py", line 3602, in <module>
root.iconbitmap("PyStars.ico")
File "/usr/lib/python3.5/tkinter/__init__.py", line 1719, in wm_iconbitmap
return self.tk.call('wm', 'iconbitmap', self._w, bitmap)
_tkinter.TclError: bitmap "PyStars.ico" not defined |
Файл с иконкой на месте:
Код: | -rw-rw-r-- 1 alexandr alexandr 1150 Apr 19 14:45 PyStars.ico |
_________________ Celestron C8, GSO 150/600
|
|
Вернуться к началу |
|
 |
Женик
ЛА
 Зарегистрирован: 12.03.2010
Сообщения: 758 Благодарности: 361
Откуда: Гомель
|
Добавлено: Пт Май 04, 2018 14:44 Заголовок сообщения: |
|
|
Странно.
У меня линукса нигде нет, чтобы попробовать.
Можно 3602 строчку стереть, может быть заработает без иконки.
_________________ http://ekosterev.belastro.net/
|
|
Вернуться к началу |
|
 |
Alexander
ЛА
 Зарегистрирован: 08.10.2008
Сообщения: 2697 Благодарности: 199
Откуда: Минск
|
Добавлено: Пт Май 04, 2018 14:52 Заголовок сообщения: |
|
|
Эх, опять сисадмин прграммы ковыряет . Заработало. Очень интересное приложение. Можно как-то локально подгружать данные по объектам? Сейчас, насколько я понял, программа их из интернета берет.
_________________ Celestron C8, GSO 150/600
|
|
Вернуться к началу |
|
 |
Женик
ЛА
 Зарегистрирован: 12.03.2010
Сообщения: 758 Благодарности: 361
Откуда: Гомель
|
Добавлено: Пт Май 04, 2018 14:55 Заголовок сообщения: |
|
|
Ура! Вы первый, кто запустил это под линуксом.
Все в локальных файлах пока, ничего из интернета не берется.
_________________ http://ekosterev.belastro.net/
|
|
Вернуться к началу |
|
 |
Женик
ЛА
 Зарегистрирован: 12.03.2010
Сообщения: 758 Благодарности: 361
Откуда: Гомель
|
Добавлено: Пт Май 04, 2018 14:57 Заголовок сообщения: |
|
|
Это при старте программы я ссылки дал на источники, откуда брал все данные.
_________________ http://ekosterev.belastro.net/
|
|
Вернуться к началу |
|
 |
Alexander
ЛА
 Зарегистрирован: 08.10.2008
Сообщения: 2697 Благодарности: 199
Откуда: Минск
|
Добавлено: Пт Май 04, 2018 15:03 Заголовок сообщения: |
|
|
А, ясно. Тогда вообще отлично. Нашел небольшую опечатку: в выводе в консоль данных по объекту яркость обозначена словом BRIGH, букву T в конце потеряли. В коде это строки:
Код: | if dso1db[i].br!="": strbr=" BRIGH="+dso1db[i].br
if dso2db[i].br!="": strbr=" BRIGH="+dso2db[i].br |
_________________ Celestron C8, GSO 150/600
|
|
Вернуться к началу |
|
 |
Женик
ЛА
 Зарегистрирован: 12.03.2010
Сообщения: 758 Благодарности: 361
Откуда: Гомель
|
Добавлено: Пт Май 04, 2018 15:09 Заголовок сообщения: |
|
|
Это я так сокращал, чтобы букв меньше было, не всегда удачно может. Потом поправлю, спасибо.
_________________ http://ekosterev.belastro.net/
|
|
Вернуться к началу |
|
 |
Женик
ЛА
 Зарегистрирован: 12.03.2010
Сообщения: 758 Благодарности: 361
Откуда: Гомель
|
Добавлено: Пт Май 04, 2018 15:12 Заголовок сообщения: |
|
|
Хорошо бы еще знать, как правильно ставить на окно иконку, чтобы работало под линуксом тоже.
_________________ http://ekosterev.belastro.net/
|
|
Вернуться к началу |
|
 |
Alexander
ЛА
 Зарегистрирован: 08.10.2008
Сообщения: 2697 Благодарности: 199
Откуда: Минск
|
Добавлено: Пт Май 04, 2018 15:15 Заголовок сообщения: |
|
|
Из нерабочего - кнопки "d" и "i" вместо открытия браузера выбрасывают ошибки:
Код: | Exception in Tkinter callback
Traceback (most recent call last):
File "/usr/lib/python3.5/tkinter/__init__.py", line 1553, in __call__
return self.func(*args)
File "./PyStars.py", line 3407, in startdssurl
os.startfile("DSS.url")
AttributeError: module 'os' has no attribute 'startfile'
Exception in Tkinter callback
Traceback (most recent call last):
File "/usr/lib/python3.5/tkinter/__init__.py", line 1553, in __call__
return self.func(*args)
File "./PyStars.py", line 3433, in startisearchurl
os.startfile("ISEARCH.url")
AttributeError: module 'os' has no attribute 'startfile' |
_________________ Celestron C8, GSO 150/600
|
|
Вернуться к началу |
|
 |
Женик
ЛА
 Зарегистрирован: 12.03.2010
Сообщения: 758 Благодарности: 361
Откуда: Гомель
|
Добавлено: Пт Май 04, 2018 15:24 Заголовок сообщения: |
|
|
Почитаю еще и попробую как-нибудь по-другому запускать файлы и ставить иконку, чтобы на всех ОС работало.
_________________ http://ekosterev.belastro.net/
|
|
Вернуться к началу |
|
 |
Alexander
ЛА
 Зарегистрирован: 08.10.2008
Сообщения: 2697 Благодарности: 199
Откуда: Минск
|
|
Вернуться к началу |
|
 |
Alexander
ЛА
 Зарегистрирован: 08.10.2008
Сообщения: 2697 Благодарности: 199
Откуда: Минск
|
Добавлено: Пт Май 04, 2018 15:34 Заголовок сообщения: |
|
|
Елки-палки, и здесь нельзя сообщения редактировать. Подсунул вместо виндового вызова такой код для DSS:
Код: | def startdssurl(*args):
subprocess.call(["xdg-open", "http://archive.stsci.edu/cgi-bin/dss_search?v=all&r=8.73317%2000&d=18.04844&e=J2000&h=30&w=30&f=gif&c=none&fov=NONE&v3="]) |
При этом должен быть импортирован модуль subprocess.call:
Код: | import subprocess, sys |
Теперь открывает фото в браузере.
_________________ Celestron C8, GSO 150/600
|
|
Вернуться к началу |
|
 |
Женик
ЛА
 Зарегистрирован: 12.03.2010
Сообщения: 758 Благодарности: 361
Откуда: Гомель
|
Добавлено: Пт Май 04, 2018 15:37 Заголовок сообщения: |
|
|
еще так можно:
os.system("ISEARCH.url")
под Windows работает, может будет и под линуксом, потому что нашел это в интернете в таком виде:
import os
os.system('/usr/bin/firefox')
_________________ http://ekosterev.belastro.net/
|
|
Вернуться к началу |
|
 |
Женик
ЛА
 Зарегистрирован: 12.03.2010
Сообщения: 758 Благодарности: 361
Откуда: Гомель
|
Добавлено: Пт Май 04, 2018 15:50 Заголовок сообщения: |
|
|
Alexander писал(а): | Елки-палки, и здесь нельзя сообщения редактировать. Подсунул вместо виндового вызова такой код для DSS:
Код: | def startdssurl(*args):
subprocess.call(["xdg-open", "http://archive.stsci.edu/cgi-bin/dss_search?v=all&r=8.73317%2000&d=18.04844&e=J2000&h=30&w=30&f=gif&c=none&fov=NONE&v3="]) |
При этом должен быть импортирован модуль subprocess.call:
Код: | import subprocess, sys |
Теперь открывает фото в браузере. |
под Виндовс не в таком виде работает, надо ковыряться.
_________________ http://ekosterev.belastro.net/
|
|
Вернуться к началу |
|
 |
Alexander
ЛА
 Зарегистрирован: 08.10.2008
Сообщения: 2697 Благодарности: 199
Откуда: Минск
|
Добавлено: Пт Май 04, 2018 15:56 Заголовок сообщения: |
|
|
Я под линуксом просто проверил, как оно вообще работает. А так надо условие добавлять на проверку ОС, в ссылке, что я дал как раз идет проверка на винду, макось и линукс.
Пока для себя подпер костылем вот так:
Код: | #=====================DSS start
def startdssurl(*args):
os.system("./url.sh") |
В скрипте url.sh такой жах:
Код: | #/bin/bash
URL=`cat ./DSS.url | grep URL | awk -F 'URL=' '{print $2}'`
firefox $URL |
В рабочий код такой ужас, конечно, добавлять очень нежелательно
_________________ Celestron C8, GSO 150/600
|
|
Вернуться к началу |
|
 |
Женик
ЛА
 Зарегистрирован: 12.03.2010
Сообщения: 758 Благодарности: 361
Откуда: Гомель
|
Добавлено: Пт Май 04, 2018 19:26 Заголовок сообщения: |
|
|
Открывание файлов я сделал так (немного переделал то, что было в ссылке выше чтобы самому понятней было и без subprocess'а):
def startdssurl(*args):
____if sys.platform == "win32" or sys.platform == "win64":
________os.startfile("DSS.url")
____else:
________if sys.platform == "darwin": opener ="open"
________else: opener ="xdg-open"
________os.system(opener+" "+"DSS.url")
По идее должно работать
Иконку сделал по-другому:
вместо
root.iconbitmap("PyStars.ico")
сделал
imgicon = PhotoImage(file="PyStars.png")
root.tk.call("wm", "iconphoto", root._w, imgicon)
Вроде должно везде заработать. Но я не уверен.
_________________ http://ekosterev.belastro.net/
|
|
Вернуться к началу |
|
 |
Yahor
ЛА
 Зарегистрирован: 21.04.2012
Сообщения: 424 Благодарности: 12
|
|
Вернуться к началу |
|
 |
KAE
ЛА
 Зарегистрирован: 21.07.2017
Сообщения: 185 Благодарности: 50
Откуда: Дзержинск
|
Добавлено: Сб Май 05, 2018 17:05 Заголовок сообщения: |
|
|
Цитата: | Ці плануеце рухацца ў бок open source ? |
А ещё лучше - в сторону Free Software?
|
|
Вернуться к началу |
|
 |
Alexander
ЛА
 Зарегистрирован: 08.10.2008
Сообщения: 2697 Благодарности: 199
Откуда: Минск
|
Добавлено: Сб Май 05, 2018 17:28 Заголовок сообщения: |
|
|
Yahor писал(а): | Ці плануеце рухацца ў бок open source ? |
Тут код адкрыты. Куды яшчэ рухацца? Пытанне толькі ў ліцэнзіі на гэты код.
_________________ Celestron C8, GSO 150/600
|
|
Вернуться к началу |
|
 |
|