30/09/2018, 20:59
Importlib.import_module không chạy được?
Mình đang sử dụng 2 file script Python cho FontForge(phần mềm tạo và sửa font), có 2 file Python nằm trong AppDataRoamingFontForgepython (để chạy mỗi lần FontForge khởi động), file module là glyphcomponents.py, file còn lại glyphbuilder.py có phần nội dụng thế này:
try:
glyphcomponents = importlib.import_module("glyphcomponents")
except:
import_successful = False
Và tuy 2 đó chung thư mục nhưng chạy luôn bị sang nhánh except, mình bỏ glyphcomponents.py vào thư mục cài đặt của FontForge vẫn không được. Xin nhờ mọi người hỗ trợ ạ.
Bài liên quan
Bạn thêm thử đoạn này vào trước dòng import xem
message ghi là “No module named glyphcomponents”
Bạn thử thêm dòng này trước đoạn import xem
bị lỗi tiếp:
NameError: global name "__file__" is not defined
Edit: mình mới sắp xếp lại file, bây giờ script đã chạy ok rồi.
Mình cũng chưa nghịch cái importlib này bao giờ nên chịu sao bạn không dùng:
Mà bạn dùng python nào, 3 hay 2
FontForge sử dụng Python 2, mà thôi mình copy lại file kia thì được rồi, không hoàn hảo lắm nhưng ok rồi
Edit: mình mới tìm được workaround:
Vậy là bạn insert path vào là được đúng không vấn đề là sao lão
__file__
lại bị lỗi nhể mình toàn dùng nó mà giờ bạn bảo lỗi thấy hơi ghê ghêÀ, hay bạn chạy thẳng từng dòng một (typing interactive), bạn phải chạy kiểu
python test.py
thì__file__
mới không lỗiCái
__file__
đó mình sửa lại, bỏ trong ngoặc kép thì nó chạy được, nhưng trả về không đúng pathChắc của bạn có liên quan đến thằng py2exe rồi chứ mình dùng toàn để không có ngoặc kép thôi
http://www.blog.pythonlibrary.org/2013/10/29/python-101-how-to-find-the-path-of-a-running-script/
Ừm, có lẽ FontForge chạy script của mình theo kiểu từng dòng một