前提・実現したいこと
同ディレクトリ、同階層にtest.pyとtest2.pyを置いています。
pyinstaller test2.py --onefile
と実行していますが、test.pyに記述している関数が呼び出せないです。
test.py(関数をしまっている)
python
1from selenium import webdriver 2from selenium.webdriver.common.keys import Keys 3from selenium.webdriver.common.by import By 4from selenium.webdriver.common.action_chains import ActionChains 5from selenium.webdriver.chrome.options import Options 6from webdriver_manager.chrome import ChromeDriverManager 7import random 8import os 9import sys 10# from time import sleep, time 11# import requests 12# from bs4 import BeautifulSoup 13# import re 14# from fake_useragent import UserAgent 15# import openpyxl 16# import time 17 18def ui(driver): 19 driver.get('https://note.com/norimac7/n/n55c154a58290') 20 21 print('ゴリラ') 22 print(driver.title) 23 24 25def startin(): 26 # アクセスの定義づけ 27 options = Options() 28 user_agent = [ 29 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_6) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/13.0.2 Safari/605.1.15', 30 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_4) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/13.1 Safari/605.1.15', 31 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/75.0.3770.100 Safari/537.36'] 32 33 UA = user_agent[random.randrange(0, len(user_agent), 1)] 34 # options.add_argument('--headless') 35 36 #ここで、バージョンなどのチェックをします。 37 driver = webdriver.Chrome(ChromeDriverManager().install()) 38 39 #Google Chromeでページを立ち上げます。 40 driver.get('https://www.google.com/?hl=ja') 41 42 ui(driver)
test2.py(tkinterを入れているメインファイル?)
python
1import tkinter 2from selenium import webdriver 3from selenium.webdriver.common.keys import Keys 4from selenium.webdriver.common.by import By 5from selenium.webdriver.common.action_chains import ActionChains 6from selenium.webdriver.chrome.options import Options 7from webdriver_manager.chrome import ChromeDriverManager 8import random 9 10import test 11 12#Startを押した時の動作 13def start(): 14 #ログインIDの指定 15 if loginId_txt.get() != '': 16 username = loginId_txt.get() 17 else: 18 print('Login IDが入力されていません。') 19 return 20 21 #パスワードの指定 22 if password_txt.get() != '': 23 password = password_txt.get() 24 else: 25 print('Passwordが入力されていません。') 26 return 27 28 29 print('ユーザーネーム:%s' % username) 30 print('パスワード:%s' % password) 31 32 33 test.startin() 34 35# tkinterメイン 36if __name__ == '__main__': 37 #windowの設定 38 root = tkinter.Tk() # tkinterの読み込み 39 root.title('test222') # アプリケーションのタイトル 40 root.geometry('450x370') # ウィンドウのサイズ 41 42 #tkinter設定 43 FORM_X = 20 44 FORM_Y = 20 45 PARAM_X = 20 46 PARAM_Y = 100 47 START_X = 20 48 START_Y = 300 49 TAG_X = 260 50 TAG_Y = 20 51 52 #ログインフォーム 53 loginId_lbl = tkinter.Label(text='Login Id') 54 loginId_lbl.place(x=FORM_X, y=FORM_Y) 55 loginId_txt = tkinter.Entry(width=10) 56 loginId_txt.place(x=FORM_X+100, y=FORM_Y) 57 password_lbl = tkinter.Label(text='Password') 58 password_lbl.place(x=FORM_X, y=FORM_Y+30) 59 password_txt = tkinter.Entry(width=10) 60 password_txt.place(x=FORM_X+100, y=FORM_Y+30) 61 62 63 #ボタンの生成 64 start_btn = tkinter.Button(root, text='Start', command=start) 65 start_btn.place(x=START_X, y=START_Y) 66 67 # メインループ 68 root.mainloop()
作成された実行ファイルはdist > test2.execです。
ターミナルで python test2.pyと実行した時は実行できます。
発生している問題・エラーメッセージ
コンソールにでたエラーメッセージ
Traceback (most recent call last): File "tkinter/__init__.py", line 1921, in __call__ File "test2.py", line 34, in start AttributeError: module 'test' has no attribute 'startin'
該当のソースコード
ソースコード
試したこと
ここに問題に対して試したことを記載してください。
補足情報(FW/ツールのバージョンなど)
anaconda
python 3.10
あなたの回答
tips
プレビュー