无法将"pyinstaller"项识别为 cmdlet,函数,脚本文件或可运行程序的名称?
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了无法将"pyinstaller"项识别为 cmdlet,函数,脚本文件或可运行程序的名称?相关的知识,希望对你有一定的参考价值。
PS D:\Desktop\activity> pyinstaller -F r.pypyinstaller : 无法将“pyinstaller”项识别为 cmdlet、函数、脚本文件或可运行程序的名称。请检查名称的拼写,如果包括路径,请确保路径正确,然后再试一次。所在位置 行:1 字符: 1+ pyinstaller -F r.py+ ~~~~~~~~~~~ + CategoryInfo : ObjectNotFound: (pyinstaller:String) [], CommandNotFoundException + FullyQualifiedErrorId : CommandNotFoundException
解决方法
1、输入的中划线“-”格式不对,检查是否为全角状态下输入,误输入了下划线“_",或是前后有空格;
2、没有引用EntityFramework命令,请执行如下名称(Import-Module 项目路径\\packages\\EntityFramework.6.1.3(EF版本)\\tools\\EntityFramework.psd1)
另外需要注意的是,执行命令时,默认项目一定要选择包含模型的项目。
具体执行:
1、CMD->powershell, 进入PowerShell 模式,进入成功后,会在命令行左边出现PS字样;
2、CMD->Get-ExecutionPolicy, 查看我们当前作用域是否具备执行PowerShell 的命令;
3、CMD->Get-ExecutionPolicy -List 查看当前所有作用域 。
参考技术A powershell比cmd更强大,使用powershell执行命令没毛病。是要把这个py的编译器对应的Scripts路径添加到环境变量path里面去。。 参考技术B 在cmd里输入
你这个是powershell 参考技术C 看看你的r.py的代码长啥样
Python 编译脚本给出“无法加载插件:sqlalchemy.dialects:presto”错误
【中文标题】Python 编译脚本给出“无法加载插件:sqlalchemy.dialects:presto”错误【英文标题】:Python compiled script giving error of "Can't load plugin: sqlalchemy.dialects:presto" 【发布时间】:2019-04-21 09:53:22 【问题描述】:我用pyinstaller编译了.py文件如下:
pyinstaller --hidden-import presto --hidden-import scipy._lib.messagestream --onefile main.py
当我运行编译后的文件时,我得到了错误:
sqlalchemy.exc.NoSuchModuleError: Can't load plugin: sqlalchemy.dialects:presto
附言我使用 sqlalchemy.engine 连接到 presto,例如:
engine = create_engine('presto://presto.service.example.com:8080/hive/default')
我在谷歌上没有找到任何有用的东西。
【问题讨论】:
不编译运行main.py
不会出现错误?
@SuperShoot直接运行脚本不会出错
你确定--hidden-import presto
是正确的吗?似乎 DB-API 驱动程序是由PyHive 提供的。 pypi 中的包presto
似乎无关。
@IljaEverilä 是的,你是对的,我尝试了许多不同的包作为隐藏导入,但都失败了,包括 pyhive
这也可能与第 3 方方言的 registered using entry points 有关。也许 pyinstaller 需要一些手握它?
【参考方案1】:
我对 Teradata 也有类似的问题:
让 Teradata 查询在 Pyinstaller 生成的 .exe 上运行。我将引擎从 SQLAlchemy 更改为 Teradata
发件人:
import sqlalchemy as sa
user, pasw, hostname = UserName,Password, 'myurl.com'
# connect
td_engine = sa.create_engine('teradata://:@:22/'.format(user,pasw,hostname),echo=True)
df = pd.read_sql_query(query1,connect)
收件人:
import teradata
user, pasw, hostname = UserName,Password, 'myurl.com'
td = teradata.UdaExec (appName="test", version="1.0", logConsole=True)
td_engine = td.connect(method="odbc",system=hostname, username=user,password=pasw,driver="Teradata")
也许从 sqlalchemy 更改为 pyodbc 或其他连接选项。
【讨论】:
以上是关于无法将"pyinstaller"项识别为 cmdlet,函数,脚本文件或可运行程序的名称?的主要内容,如果未能解决你的问题,请参考以下文章
Pyinstaller“无法执行脚本pyi_rth_pkgres”和缺少包