Qiita Teams that are logged in
You are not logged in to any team

Log in to Qiita Team
Community
OrganizationAdvent CalendarQiitadon (β)
Service
Qiita JobsQiita ZineQiita Blog
Help us understand the problem. What is going on with this article?

【Python】PyInstallerでExe化すると、No module named 'pyproj.datadir' が出るときの対処

背景

Pythonファイルをコマンドプロンプト等から起動すると問題なく動いていた。
しかし、PyInstallerでExe化したファイルを実行すると、pyprojをインポートするところで、以下のエラーが送出され、プログラムが落ちてしまった。

ModuleNotFoundError: No module named 'pyproj.datadir'

環境

  • Windows 10
  • Python 3.7.4
  • PyInstaller 3.6
  • pyproj 2.4.0

対処法

specファイル内の、Analysis()のdatasにpyprojのパスを追加するとうまくいった。

.spec
a = Analysis(['hoge.py'],
             pathex=['C:\\workspace\\hoge\\src'],
             binaries=[],
             datas=[
                    ('C:\\Users\\grin\\Anaconda3\\envs\\py_37\\Lib\\site-packages\\pyproj\\*', '.\\pyproj\\'),
                    ],
             hiddenimports=[],
             hookspath=[],
             runtime_hooks=[],
             excludes=[],
             win_no_prefer_redirects=False,
             win_private_assemblies=False,
             cipher=block_cipher)

追記(2020/08/04)

FileNotFoundError: [Errno 2] No such file or directory: 'C:\Users\grin\AppData\Local\Temp\_MEI103442\skyfield\data\nutation.npz'

のようなFileNotFoundErrorが出た場合も、該当するファイルパスをdatasに追加すれば大丈夫です。

datas = [('C:\\Users\\grin\\Anaconda3\\envs\\py_37\\Lib\\site-packages\\skyfield\\data\\*', '.\\skyfield\\data\\'),],

参考URL

grinpeaceman
無駄なんだ、無駄無駄
Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away