python3.3+tkinter = py-tkinter? как установить?

Простые/общие вопросы по UNIX системам. Спросите здесь, если вы новичок

Модераторы: vadim64, terminus

Правила форума
Убедительная просьба юзать теги [cоde] при оформлении листингов.
Сообщения не оформленные должным образом имеют все шансы быть незамеченными.
razdao
рядовой
Сообщения: 10
Зарегистрирован: 2012-05-21 10:15:55

python3.3+tkinter = py-tkinter? как установить?

Непрочитанное сообщение razdao » 2013-08-06 11:41:03

Доброго времени суток. Еще не отчаялся, но уже ищу помощи.

Код: Выделить всё

FreeBSD mini.local 9.1-PRERELEASE FreeBSD 9.1-PRERELEASE #0: Fri Aug 10 00:04:12 VOLT 2012     root@mini.local:/usr/obj/usr/src/sys/GENERIC  i386

Код: Выделить всё

python27-2.7.3_3               An interpreted object-oriented programming language
python33-3.3.2_1               Interpreted object-oriented programming language
py27-tkinter-2.7.3_3           Python bindings to the Tk widget set
tk-8.5.14_1                    Graphical toolkit for Tcl
tk-8.6.0_2                     Graphical toolkit for Tcl
Собственно проблема вот в чем: изучаю Питон, но по желанию своей пятки решил изучать третью ветку. Установил из портов python3.3, интерпретатор работает прекрасно. Но проблема с модулем tkinter

Код: Выделить всё

>>> import tkinter
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "/usr/local/lib/python3.3/tkinter/__init__.py", line 40, in <module>
    import _tkinter # If this fails your Python may not be configured for Tk
ImportError: No module named '_tkinter'
Ясно-понятно, что нет модуля tkinter. Погулял по сети, пришел к порту x11-toolkits/py-tkinter. Решил установить, он ругнулся на уже установленный py27-tkinter-2.7.3_3. Залез в файлы порта, там оказалась возможность для установки tkinter и для python3.3. В Mk/bsd.python.mk есть переменные PYTHON_DEFAULT_VERSION и PYTHON3_DEFAULT_VERSION.

Поигрался с ними, в итоге при PYTHON_DEFAULT_VERSION=python3.3 выдает

Код: Выделить всё

===>  Building for py33-tkinter-3.3.2_4
running build
running build_ext
Traceback (most recent call last):
  File "setup.py", line 41, in <module>
    library_dirs = lib_dirs)]
  File "/usr/local/lib/python3.3/distutils/core.py", line 148, in setup
    dist.run_commands()
  File "/usr/local/lib/python3.3/distutils/dist.py", line 929, in run_commands
    self.run_command(cmd)
  File "/usr/local/lib/python3.3/distutils/dist.py", line 948, in run_command
    cmd_obj.run()
  File "/usr/local/lib/python3.3/distutils/command/build.py", line 126, in run
    self.run_command(cmd_name)
  File "/usr/local/lib/python3.3/distutils/cmd.py", line 313, in run_command
    self.distribution.run_command(command)
  File "/usr/local/lib/python3.3/distutils/dist.py", line 948, in run_command
    cmd_obj.run()
  File "/usr/local/lib/python3.3/distutils/command/build_ext.py", line 324, in run
    customize_compiler(self.compiler)
  File "/usr/local/lib/python3.3/distutils/sysconfig.py", line 212, in customize_compiler
    cflags = opt + ' ' + os.environ['CFLAGS']
TypeError: unsupported operand type(s) for +: 'NoneType' and 'str'
*** [do-build] Error code 1

Stop in /usr/ports/x11-toolkits/py-tkinter.
На лицо компиляция того, что мне надо. Только правильность использования этой переменной меня смущает - эта переменная, вроде как, для второй ветки Питона
На всякий случай я заглянул в этот setup.py, но из-за отсутствия нужных знаний не нашел в этой строчке ничего криминального. А дальше просто не полез.
Для PYTHON3_DEFAULT_VERSION=python3.3

Код: Выделить всё

===>  Building for py27-tkinter-2.7.3_4
cd: /usr/ports/x11-toolkits/py-tkinter/work/Python-2.7.3/Modules: No such file or directory
*** [do-build] Error code 2

Stop in /usr/ports/x11-toolkits/py-tkinter.
Видно, что снова собирается tkinter для второй ветки, а мне оно не надо..

Конечно я заметил, что у меня порт python33-3.3.2_1, а ставится py-tkinter-3.3.2_4, но дерево портов обновлено и свежайший Питон установлен. Я бы и сам закончил на этом, если бы не мне это надо было.

Мужики и женщины, админы и программеры - помогите. Хочу с графикой работать, и именно в любимой ОС. Как уговорить этот порт собраться именно для python3.3? Или если есть другой путь подключить tkinter - рад узнать его.

Хостинговая компания Host-Food.ru
Хостинг HostFood.ru
 

Услуги хостинговой компании Host-Food.ru

Хостинг HostFood.ru

Тарифы на хостинг в России, от 12 рублей: https://www.host-food.ru/tariffs/hosting/
Тарифы на виртуальные сервера (VPS/VDS/KVM) в РФ, от 189 руб.: https://www.host-food.ru/tariffs/virtualny-server-vps/
Выделенные сервера, Россия, Москва, от 2000 рублей (HP Proliant G5, Intel Xeon E5430 (2.66GHz, Quad-Core, 12Mb), 8Gb RAM, 2x300Gb SAS HDD, P400i, 512Mb, BBU):
https://www.host-food.ru/tariffs/vydelennyi-server-ds/
Недорогие домены в популярных зонах: https://www.host-food.ru/domains/

razdao
рядовой
Сообщения: 10
Зарегистрирован: 2012-05-21 10:15:55

Re: python3.3+tkinter = py-tkinter? как установить?

Непрочитанное сообщение razdao » 2013-08-06 12:46:14

Спасибо все, сам решил.

Решилось так:

Код: Выделить всё

cd /usr/ports/x11-toolkits/py-tkinter/
make PYTHON_DEFAULT_VERSION=python3.3   #скачает исходники, пропатчит\подготовит, и вылетит с ошибкой, как я указал. Лично у меня.
cd ./work/Python3.3.2/
./configure
make install clean 
Спасибо мне, кучке форумов и сообществу FreeBSD.