2016-01-24 2 views
0

Я создал небольшую программу питона, используя несколько импорта:Почему модуль «splinter» не найден после создания исполняемого файла python?

осколок, Tkinter, webbrwoser, URLLIB и вновь

Программа имеет графический интерфейс (через Tkinter), и все отлично работает, когда я запускаю его через командную строку.

Однако, когда я пытаюсь создать исполняемый файл, используя these instructions, все кажется работать, но потом, когда я на самом деле запустить exe-файл, я получаю следующее сообщение об ошибке:

C:\Python27\dist>pypy.exe 
Traceback (most recent call last): 
    File "pypy.py", line 1, in <module> 
ImportError: No module named splinter 

Этот код, который я использовал, чтобы получить файл с расширением .exe:

from distutils.core import setup 
import py2exe 

setup(console=['pypy.py']) 

Так что я угадал (после того, как делают некоторые чтения в this SO пост) проблема га что-то делать с отсутствующими файлами из моей папки dist, но для жизни я не уверен, куда идти отсюда.

Пожалуйста, помогите мне сделать мою программу python GUI.

Спасибо заранее,

Йон

ответ

0

ok! после довольно много рытья (here, here и here) Я получил все, чтобы работать!

Шаги:

  1. Скопируйте всю папку осколок в Python27\Lib\site-packagesПеред запуском setup.py
  2. Копировать как "webdriver.xpi" и "webdriver_prefs.json" отC:\Python27\Lib\site-packages\selenium\webdriver\firefoxвdist\selenium\webdriver\firefoxпосле настройка (после создания папки dist)
  3. Бонус: для .exe открыть без консоли (хорошо, если вы используете графический интерфейс пользователя), в setup.py использования файла windows вместо console в setup(console=['pypy.py'])

И это все! Теперь программа запускается и работает с графическим интерфейсом и библиотеками splinter sans hitch!

0

Я нашел этот пост, который обсуждается вручную -excluding- модули из py2exe сборки: py2exe "include" modules: when should they be managed manually?

Они упоминают, что ки автоматически включаются и я suspect re и webbrowser/urllib в качестве стандартных пакетов, но другие могут быть добавлены в раздел «include». Я подозреваю, что в вашей настройке вам нужно что-то вроде следующего:

setup(
     console=['pypy.py'], 
     options={ 
       "py2exe":{ 
         "includes": ["splinter"] 
       } 
     } 
) 

Надеюсь, это поможет; Я не много сделал с py2exe, так что, если бы не кто-то другой мог помочь!

+0

Я понял, что это будет нечто похожее, но я не думаю, что могу просто написать «включает в себя: [splinter]» - из моего смутного понимания мне нужен список файлов, только я не уверен, что (а) я прав, и (б) если я прав, какие файлы – Jona

+0

Из того, что я вижу, строка будет включать: ["splinter"] ', с двойными кавычками вокруг имени пакета. Я также прочитал, что если модуль импортируется в файл setup.py, он будет включен, поэтому обход должен был импортировать осколок в настройке (довольно неприятно, если он работает). Вы также можете попробовать «пакеты»: ['splinter']. –

+0

К сожалению, я все еще получаю «Нет модуля с именем splinter», execept теперь это, когда я пытаюсь запустить setup py2exe:/ – Jona

Смежные вопросы