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

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

新規登録して質問してみよう
ただいま回答率
85.46%
SSL

SSL(Secure Sockets Layer)とは、暗号化されたプロトコルで、インターネット上での通信セキュリティを提供しています。

WebSocket

WebSocketとは双方向・全二重コミュニケーションのためのAPIでありプロトコルのことを指します。WebSocketはHTML5に密接に結びついており、多くのウェブブラウザの最新版に導入されています。

Python

Pythonは、コードの読みやすさが特徴的なプログラミング言語の1つです。 強い型付け、動的型付けに対応しており、後方互換性がないバージョン2系とバージョン3系が使用されています。 商用製品の開発にも無料で使用でき、OSだけでなく仮想環境にも対応。Unicodeによる文字列操作をサポートしているため、日本語処理も標準で可能です。

Slack

Slackは、Tiny Speckという企業からリリースされたコミュニケーションツールです。GoogleDriveやGitHubなど、さまざまな外部サービスと連携することができます。

Q&A

0回答

810閲覧

Pyhtonファイル(slackbot)を.exeファイル化したところTypeError: cafile, capath and cadata cannot be all omittedが出てしまった

_aoi.

総合スコア0

SSL

SSL(Secure Sockets Layer)とは、暗号化されたプロトコルで、インターネット上での通信セキュリティを提供しています。

WebSocket

WebSocketとは双方向・全二重コミュニケーションのためのAPIでありプロトコルのことを指します。WebSocketはHTML5に密接に結びついており、多くのウェブブラウザの最新版に導入されています。

Python

Pythonは、コードの読みやすさが特徴的なプログラミング言語の1つです。 強い型付け、動的型付けに対応しており、後方互換性がないバージョン2系とバージョン3系が使用されています。 商用製品の開発にも無料で使用でき、OSだけでなく仮想環境にも対応。Unicodeによる文字列操作をサポートしているため、日本語処理も標準で可能です。

Slack

Slackは、Tiny Speckという企業からリリースされたコミュニケーションツールです。GoogleDriveやGitHubなど、さまざまな外部サービスと連携することができます。

0グッド

0クリップ

投稿2021/06/03 09:05

前提・実現したいこと

現在、slackbotをローカル上で動作させるために作成したpythonファイル(run.py)をpyinstallerで実行ファイル化(run.exe)し、タスクスケジューラでPC起動時にbotが起動するようにしたい。

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

Traceback (most recent call last): File "run.py", line 16, in <module> File "run.py", line 11, in main File "slackbot\bot.py", line 27, in __init__ File "slackbot\slackclient.py", line 43, in __init__ File "slackbot\slackclient.py", line 48, in rtm_connect File "slackbot\slackclient.py", line 72, in parse_slack_login_data File "websocket\_core.py", line 487, in create_connection File "websocket\_core.py", line 211, in connect File "websocket\_http.py", line 77, in connect File "websocket\_http.py", line 182, in _ssl_socket File "websocket\_http.py", line 138, in _wrap_sni_socket TypeError: cafile, capath and cadata cannot be all omitted [4396] Failed to execute script run

コンソール上では問題なく動作しているため、該当ファイル(run.py)の内容を記載いたします。

python

1from slackbot.bot import Bot 2 3 4def main(): 5 bot = Bot() 6 bot.run() 7 8if __name__ == "__main__": 9 print('start slackbot') 10 main() 11

試したこと

•pythonのバージョン変更(現在python 3.6.4)
•不必要なライブラリの削除
•cacert.pemファイルを可能性のありそうな配置へ移動(いろいろな階層に配置してみた)
•Googleで検索
以下、参照したサイトの一部
https://t.co/cNUPDXn73R?amp=1
https://github.com/slackapi/python-slack-sdk/issues/289
https://github.com/scrapinghub/slackbot/issues/133

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

python3.6.4
pyinstaller==4.3
pyinstaller-hooks-contrib==2021.1
requests==2.18.4
slackbot==1.0.0
slacker==0.14.0
websocket-client==0.44.0

run.specファイルはいじってません

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

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

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

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

_aoi.

2021/06/05 23:15

返信が遅くなり、大変申し訳ございません。 run.pyと同じ階層にあるslackbot_setings.pyに以下のような記述を行ってみましたが、エラー内容に変化はありませんでした。 import os from slackbot import settings API_TOKEN = "**********************" settings.DEFAULT_REPLY = u"Hello" settings.PLUGINS = [ 'plugins', ] WEBSOCKET_CLIENT_CA_BUNDLE = os.path.abspath('cacert.pem') 何か記述方法に問題がありそうでしょうか?
jbpb0

2021/06/05 23:48

https://github.com/websocket-client/websocket-client/issues/451#issuecomment-417918570 のminus7さんの2 Sep 2018のコメントを見ると、 WEBSOCKET_CLIENT_CA_BUNDLE は環境変数のようです slackbot_setings.pyへの追記が環境変数設定と同じ効果があるかは、私には分かりません とりあえず、OSの設定で上記環境変数をcacert.pemファイルの絶対パスで指定してみて、エラー出なくなるか確認したら、いかがでしょうか? もしそれでエラー出なくなるなら、Pythonコード内で環境変数を設定したら、OS側で設定しなくても大丈夫だと思います 参考 https://note.nkmk.me/python-os-environ-getenv/ の「環境変数を設定(追加・上書き)」 Pythonコード内で環境変数を設定してテストする際は、OS側の環境変数設定を削除しておくのを忘れないように、ご注意ください
_aoi.

2021/06/07 04:54

ご返信ありがとうございます。 OS側でcacert.pemの絶対パスを環境変数として設定後、再起動させてみました。 しかし、前回同様のエラーが出てしまいました。 Traceback (most recent call last): File "run.py", line 11, in <module> File "run.py", line 6, in main File "slackbot\bot.py", line 27, in __init__ File "slackbot\slackclient.py", line 43, in __init__ File "slackbot\slackclient.py", line 48, in rtm_connect File "slackbot\slackclient.py", line 72, in parse_slack_login_data File "websocket\_core.py", line 487, in create_connection File "websocket\_core.py", line 211, in connect File "websocket\_http.py", line 77, in connect File "websocket\_http.py", line 182, in _ssl_socket File "websocket\_http.py", line 138, in _wrap_sni_socket TypeError: cafile, capath and cadata cannot be all omitted [2984] Failed to execute script run pythonファイル内でも環境変数の設定(OS側は削除)してみましたが、同様の結果となりました。
jbpb0

2021/06/07 09:18

OSがもしWindowsでしたら、環境変数に絶対パスを登録する際に、パス区切文字のバックスラッシュ(円マークに見えるかも)を、全部二つずつ並べてみてください
_aoi.

2021/06/08 01:33

ありがとうございます。 バックスラッシュ(¥)を二つ並べて環境変数を再設定してみました。 以下、生じたエラー内容になります。 Traceback (most recent call last): File "run.py", line 11, in <module> File "run.py", line 6, in main File "slackbot\bot.py", line 27, in __init__ File "slackbot\slackclient.py", line 43, in __init__ File "slackbot\slackclient.py", line 48, in rtm_connect File "slackbot\slackclient.py", line 72, in parse_slack_login_data File "websocket\_core.py", line 487, in create_connection File "websocket\_core.py", line 211, in connect File "websocket\_http.py", line 77, in connect File "websocket\_http.py", line 182, in _ssl_socket File "websocket\_http.py", line 138, in _wrap_sni_socket TypeError: cafile, capath and cadata cannot be all omitted [3968] Failed to execute script run
jbpb0

2021/06/08 01:37

変わらないですね それだと分からないです すみません
_aoi.

2021/06/08 01:41

色々とご親切にありがとうございました。 引き続き調べてみます。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

会員登録して回答してみよう

アカウントをお持ちの方は

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

ただいまの回答率
85.46%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問