2017-12-25 11 views
0

YouTubeのAPIを使用してPythonプログラムを構築し、一部のチャンネルの変更を検出しました。.exeをsqlite3データベースを含む.exeに変換する

Project/ 
    classes/ 
     Database.py 
    database/ 
     project.db 
    main.py 

マイmain.pyプログラムの連絡先のYouTube API初めて、私のDatabaseクラスのインスタンスを使用して.dbファイルにいくつかの情報を格納します。

は、ここで私は私のプログラムを整理する方法です。

次に、特定の時間間隔でYouTube APIに問い合わせて、.dbファイルの内容とサーバーの応答の違いを確認します。

プロジェクトを.exeにエクスポートして、同僚と共有しようとしていますが、cx_Freezeがうまく動作しません。

マイmain.py

# IMPORT 
import sys 
sys.path.insert(0, 'classes/') 
from Database import Database 
import urllib.request 
import json 
import re 

マイDatabase.py

import sys 
sys.path.insert(0, '../database/') 
import sqlite3 

マイsetup.py

型付け:

python3 setup.py build 

結果の興味深い部分:

running build 
running build_exe 
... 
Missing modules: 
? __main__ imported from bdb, pdb 
? _dummy_threading imported from dummy_threading 
? _frozen_importlib imported from importlib, importlib.abc 
? _frozen_importlib_external imported from importlib, importlib._bootstrap,  importlib.abc 
? _winapi imported from subprocess 
? _winreg imported from platform 
? java.lang imported from platform 
? msvcrt imported from getpass, subprocess 
? nt imported from ntpath, os, shutil 
? nturl2path imported from urllib.request 
? org.python.core imported from copy, pickle 
? os.path imported from os, pkgutil, py_compile, tracemalloc, unittest, unittest.util 
? vms_lib imported from platform 
? winreg imported from mimetypes, platform, urllib.request 
This is not necessarily a problem - the modules may not be needed on this platform. 

creating directory build/exe.macosx-10.6-intel-3.6/lib 
Copying data from package collections... 
Copying data from package email... 
Copying data from package encodings... 
Copying data from package html... 
Copying data from package http... 
Copying data from package importlib... 
Copying data from package json... 
Copying data from package logging... 
Copying data from package pydoc_data... 
Copying data from package sqlite3... 
Copying data from package unittest... 
Copying data from package urllib... 
Copying data from package xml... 

... 

copying database/project.db -> build/exe.macosx-10.6-intel-3.6/project.db 
/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/objdump: 'database/project.db': The file was not recognized as a valid object file. 
fatal error:  /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/otool: internal objdump command failed 

生成されたフォルダが含まれています

Project (with the icon "exec" on my system, but no .exe extension) 
project.db (not in a database/ folder, just side by side with the rest) 
lib/ 
Python (with the icon "exec" on my system, but no .exe extension) 

そのシステム(Windowsの10)でこれをテストする場合、最初に彼がしなければなりません拡張子 ".exe"を "Project"ファイルに手動で追加するか、フォルダとして表示され、それを実行すると "このアプリケーションは実行できません。 nあなたのPC "。

なぜ動作しないのですか?あなたは何か間違っていますか?

ありがとうございました!

+0

'objdump'を実行すべきではありません。これはcx_freezeのバグのようです。 –

+0

どうすればいいですか? cx_freezeを再インストールしますか?何を使って、醸造? – SlickKiss

答えて

-1

実際にはobjdumpコマンドがシステムで動作していません。システムにインストールされていない可能性があります。 objdumpをインストールしてみてください。

リンク:DBファイルが実行可能ファイルではありませんので、https://superuser.com/questions/206547/how-can-i-install-objdump-on-mac-os-x

+0

私はbrewを使ってbinutilsをインストールし、 "which gobjdump"と "/ usr/local/bin/gobjdump"というコマンドをチェックしましたが、 "python3 setup.py build"コマンドを実行しても同じエラーが出ます。データベース/ project.db - >ビルド/ exe.macosx-10.6-intel-3.6/project.db /アプリケーション/ Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/objdump: 'データベース/ project.db ':ファイルが有効なオブジェクトファイルとして認識されませんでした。 致命的なエラー:/ Applications/Xcode。このコマンドは機能しますが、私は古典的な "概要:...を取得します...使用法:/アプリケーション/コンテンツ/開発者/ツールチェーン/ XcodeDefault.xctoolchain/usr/bin/otool:内部objdumpコマンドが失敗しました – SlickKiss

+0

端末を開いてタイプ:objdump出力を確認してください –

+0

...オプション:... "、それは失敗したcx_Freezeを使用しているときです。奇妙な。 – SlickKiss

関連する問題