[英]How to make all my imports in a separete setup.py file then importing this file in main.py?
我正在嘗試制作一個安裝腳本,它將在沒有它的機器上安裝所需的 python 模塊。 所以使用推薦的安裝包方式,這是我的setup.py
import subprocess
import sys
import importlib
required_packages = ["cryptography.fernet", "os", "pip"]
for package in required_packages:
try:
importlib.import_module(package)
print("Imported {} successfully".format(package))
except ImportError:
subprocess.check_call([sys.executable, "-m", "pip", "install", package])
print("Installed {} successfully".format(package))
和main.py
為:
import setup
os.walk(".") # cause an error
這樣我就可以控制哪些模塊已經安裝,哪些沒有,然后安裝它們。 問題是,進口setup.py in main.py
似乎沒有導入這些包中的全局命名空間main.py
我那么如何才能使這兩個Python文件工作打算。
您的main.py
文件應該像這樣導入setup.py
文件:
import setup
__import__('setup', globals={"__name__": __name__})
我會考慮將您的setup.py
文件重命名為install_packages.py
東西,因為“setup”可能與之前分配的值沖突 - 例如:
import install_packages
__import__('install_packages', globals={"__name__": __name__})
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.