質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

ただいまの
回答率

88.61%

Pythonのcx_Freezeで大問題発生

受付中

回答 0

投稿 編集

  • 評価
  • クリップ 0
  • VIEW 2,122

zansetsuber

score 23

前提・実現したいこと

こんにちは。新元号はっぴょう後早々申し訳ありません。python3.7.3 32bitで、cx_Freezeをインストールする為に「pip install cx_Freeze」コマンドを打ってインストールして、早速setup.pyを作ってコンパイルしようと思ったら、下記のエラーが表示されてうんざりです。これに丸3日使っています。
コマンドは、「python setup.py build」です。

発生している問題・エラーメッセージ

Traceback (most recent call last):
  File "setup.py", line 2, in <module>
    from cx_Freeze import setup, Executable
  File "C:\python\lib\cx_Freeze\__init__.py", line 6, in <module>
    from cx_Freeze.windist import *
  File "C:\python\lib\cx_Freeze\windist.py", line 1, in <module>
    import distutils.command.bdist_msi
  File "C:\python\lib\distutils\command\bdist_msi.py", line 17, in <module>
    import msilib
ModuleNotFoundError: No module named 'msilib'

該当のソースコード

#setup.py

import sys
from cx_Freeze import setup, Executable

# Dependencies are automatically detected, but it might need fine tuning.
build_exe_options = {"packages": ["os"], "excludes": ["tkinter"]}

# GUI applications require a different base on Windows (the default is for a
# console application).
base = None
if sys.platform == "win32":
    base = "Win32GUI"

setup(  name = "guifoo",
        version = "0.1",
        description = "My GUI application!",
        options = {"build_exe": build_exe_options},
        executables = [Executable("guifoo.py", base=base)])
#264.py

# coding: utf-8
import os, tkinter, tkinter.filedialog, tkinter.messagebox
import numpy as np
import sys
import cv2
import tkinter.ttk as ttk
from tkinter import *
from moviepy.editor import *



e1 = "1"

e2 = "2"

b = "3"

ab = "4"


root = tkinter.Tk()
root.title('質問1')

# Frame as Widget Container
frame1 = ttk.Frame(
    root,
    padding=5)
frame1.grid()

# Label 1
icon = PhotoImage(file='icon.png')

label1 = ttk.Label(
    frame1,
    image=icon)
label1.grid(row=1,column=1)

# String
s = StringVar()
s.set('この動画は、どのように使いますか?')

# Label 2
label2 = ttk.Label(
    frame1,
    textvariable=s,
    width=30,
    anchor=W,
    padding=(5,10))
label2.grid(row=1,column=2)

# Button 1
def button1_clicked():

    global e1
    e1 = "libx264"

    global e2
    e2 = "aac"

    global b
    b = "120000000"

    global ab
    ab = "640000"

    root.quit()
    root.destroy()

button1 = ttk.Button(
    frame1,
    text='ユーチューブにアップロードする',
    command=button1_clicked)
button1.grid(row=2,column=1,columnspan=2)


root.mainloop()










# ファイル選択ダイアログの表示
root = tkinter.Tk()
root.withdraw()
root.iconbitmap('icon.ico')
fTyp = [("","*")]
iDir = os.path.abspath(os.path.dirname(__file__))
tkinter.messagebox.showinfo('EXH.264','変換元ファイルを選択してください')

file = tkinter.filedialog.askopenfilename(
   title = "EXH.264:変換元ファイルを選びましょう。",
   filetypes = fTyp,initialdir = iDir
)






'''保存先のダイアログを表示するコード'''
save1 = tkinter.filedialog.asksaveasfilename(
    title = "EXH.264:保存場所を選びましょう。",
    filetypes  = [("MP4", ".mp4")]
)

save = save1 + ".mp4"



file_path = file #編集したい動画のパス

save_path = save #編集後のファイル保存先とパス

video = VideoFileClip(file_path)

video.write_videofile(save_path,fps=60,codec=e1,audio_codec=e2,bitrate=b,audio_bitrate=ab) # Many options...#書き込み

試したこと

ネットで調べて、msilibが必要かもということが分かりましたが、導入方法が分かりません。すみません<m(__)m>

補足情報(FW/ツールのバージョンなど)

ちなみに、windows7です。64bitです。
僕にはこれらの問題を抱えています。どうすればいいですか?

  • 気になる質問をクリップする

    クリップした質問は、後からいつでもマイページで確認できます。

    またクリップした質問に回答があった際、通知やメールを受け取ることができます。

    クリップを取り消します

  • 良い質問の評価を上げる

    以下のような質問は評価を上げましょう

    • 質問内容が明確
    • 自分も答えを知りたい
    • 質問者以外のユーザにも役立つ

    評価が高い質問は、TOPページの「注目」タブのフィードに表示されやすくなります。

    質問の評価を上げたことを取り消します

  • 評価を下げられる数の上限に達しました

    評価を下げることができません

    • 1日5回まで評価を下げられます
    • 1日に1ユーザに対して2回まで評価を下げられます

    質問の評価を下げる

    teratailでは下記のような質問を「具体的に困っていることがない質問」、「サイトポリシーに違反する質問」と定義し、推奨していません。

    • プログラミングに関係のない質問
    • やってほしいことだけを記載した丸投げの質問
    • 問題・課題が含まれていない質問
    • 意図的に内容が抹消された質問
    • 過去に投稿した質問と同じ内容の質問
    • 広告と受け取られるような投稿

    評価が下がると、TOPページの「アクティブ」「注目」タブのフィードに表示されにくくなります。

    質問の評価を下げたことを取り消します

    この機能は開放されていません

    評価を下げる条件を満たしてません

    評価を下げる理由を選択してください

    詳細な説明はこちら

    上記に当てはまらず、質問内容が明確になっていない質問には「情報の追加・修正依頼」機能からコメントをしてください。

    質問の評価を下げる機能の利用条件

    この機能を利用するためには、以下の事項を行う必要があります。

質問への追記・修正の依頼

  • zansetsuber

    2019/04/03 16:22 編集

    あっ!pyinstallerでコンパイルしてみましたが、エラーが表示されています。どうやら、モジュールの定義のし忘れのようでありますが、できるならなんとか自分で解決してみせます。何故なら、丸投げと指摘されたのですから...

    キャンセル

  • zansetsuber

    2019/04/03 16:37

    仮想環境を使った方法も試みています。

    キャンセル

  • zansetsuber

    2019/04/03 16:55

    成功しましたので、確認中です。

    キャンセル

まだ回答がついていません

15分調べてもわからないことは、teratailで質問しよう!

  • ただいまの回答率 88.61%
  • 質問をまとめることで、思考を整理して素早く解決
  • テンプレート機能で、簡単に質問をまとめられる

関連した質問

同じタグがついた質問を見る