无法将"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打包动态库

Pyinstaller“无法执行主要脚本”问题[重复]

如何使用 pyinstaller 包含文件?

Pyinstaller“无法执行脚本pyi_rth_pkgres”和缺少包

Windows-Pyinstaller 错误“无法执行脚本”当应用程序单击时

SDL2 错误:使用 pyinstaller 冻结 kivy 应用程序时“无法加载图像 <default.png>”