Рубрики
Без рубрики

Портирование wxpymail в Linux

Получите практические, реальные навыки Python на наших ресурсах и пути

Автор оригинала: Mike Driscoll.

Портирование приложения из одной ОС к другому может быть трудоемким процессом. К счастью, Wxpython принимает боль из процесса. Это только 2-й раз, когда я перенес свой код в Linux. Я обычно пишу для Windows XP на Windows XP на работе. Когда я изначально писал WXPymail для работы, я использовал библиотеку Pywin32 Mark Hammond Pywin32, чтобы получить полное имя пользователя пользователя и имя пользователя, чтобы помочь построить свой обратный адрес. Вот код, который я использовал тогда:

try:
    userid = win32api.GetUserName()
    info = win32net.NetUserGetInfo('server', userid, 2)
    full_name = str(info['full_name'].lower())
    name_parts = full_name.split(' ')
    self.emailuser = name_parts[0][:1] + name_parts[-1]
    email = self.emailuser + '@companyEmail'
except:
    email = ''

Если бы я сохранил этот код, мне нужно будет использовать модуль WX.Platform и тестируйте флаг «WXMSW», как это:

if wx.Platform == '__WXMSW__':  
    try:
        userid = win32api.GetUserName()
        # rest of my win32 code
    except:
        # do something
        pass
else:
    # put some Linux or Mac specific stuff here
    pass

Это, наверное, самый простой способ пойти в портировать код, особенно если у вас есть только пара ОС, определенных битов кода. Если у вас есть много всего, то вы, вероятно, захотите прикрепить их в свой собственный модуль (ы) и импортируйте их, переданные на вашу платформу. Я уверен, что есть дополнительные способы достижения этого.

Во всяком случае, я вывел все, что Win32 вещество, потому что это связано с моей организацией. Таким образом, новый код для WXPymail на самом деле работает просто в Linux. Я проверил это на Убунту Харди Герон. Однако я заметил пару эстетических вопросов. Во-первых, кадр, казалось, получал фокус, поэтому я не мог просто начать печатать в адресе электронной почты или даже мое имя пользователя в WX.Dialog, который всплывает. И во-вторых, этикетки и текстовые поля в вашем диалоговом окне входа были слишком короткими в Ubuntu. Они выглядели хорошо в окнах, но этикетки были обрезаны на Ubuntu, и я не мог видеть все мое имя пользователя, когда он был введен в полной мере.

Таким образом, я изменил код так, чтобы размер этикеток и текстовых ящиков длиннее. Я также называл setfocus () на К поле в основном приложении и Имя пользователя Текстовое поле в диалоговом окне входа. Кроме того, я сделал небольшой рефакторинг, придерживаясь SMTP-сервера в __init__, поэтому легче найти и установить. Я также изменил свои различные контрольные змеи, чтобы они явно отражали свои параметры.

Также обратите внимание на линию «Shebang» в начале файла: «#!/USR/Bin/Env Python». Это говорит Linux, что этот файл может быть выполнен с помощью Python, и он также рассказывает Linux, где есть папка установки Python. Пока Python находится в вашем пути где-то, вы сможете использовать этот метод. Чтобы проверить, есть ли у вас Python на вашем пути, откройте командную строку и введите «Python». Если вы получите Shell Python, вы хотите пойти.

Вы можете подумать, что мы закончили сейчас, но мы забыли одну важной частью. Нам все еще нужно сказать Linux использовать WXPYMail в качестве своей программы электронной почты по умолчанию для ссылок Mailto. Я нашел Как к статье На эту очень тему на HowTogeek Отказ Нам нужно немного изменить его, чтобы сделать его работать, но на самом деле довольно легко, как только вы знаете, как. Для этого я использовал Ubuntu Hardy keron (8.04) с Wxpython 2.8.9.1 и Python 2.5.2.

Во всяком случае, сначала вам нужно скачать мой код. Когда я впервые написал это приложение, это было в Windows. Приятные люди на списке рассылки WXPYPHON указывали мне, что у меня есть линейные проблемы с моим кодом, поэтому убедитесь, что вы не случайно преобразуете его обратно в формат Windows. Благодаря Робину Данну, Кристофер Баркер, Коди Преветд, Франк Миллман и парень по имени Кит.

Во-вторых, вам необходимо сказать Linux, чтобы выполнить сценарий Python, когда пользователь нажимает на ссылку Mailto. В Ubuntu вы можете сделать это, собираясь в систему, предпочтения, предпочтительные приложения. Измените «Reader Mail» на «Custom» и в поле «Команда» Добавьте следующее:

/home/username/path/to/wxpymail.py% s.

Замените имя пользователя своим именем пользователя и настройте путь по мере необходимости. Убедитесь, что вы включаете «% s», как это представляет строку «Mailto», которая передается нашему сценарию. Теперь откройте командную строку и измените каталоги, где вы помещаете сценарий Python. Вам нужно будет изменить его разрешения для выполнения, так что-то вроде этого должно сделать это:

chmod + x wxpymail.py

Теперь просмотрите веб-сайт с ссылкой MailTo и попробуйте! Как всегда, чувствую, чтобы освободить меня по электронной почте с вопросами или комментариями на Mike [AT] PythonLibrary [dot] org.

Скачать источник

  • wxpymail-linux.tar.tar.
  • wxpymail-Linux.zip

Дополнительное чтение