我正在尝试让 .Net C# 应用程序从注册表项运行Run(位于HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Run,其他字符串值存在并启动一切正常)。但由于某种莫名其妙的原因,我的应用程序的路径无法启动我的应用程序。因此,我决定从命令提示符手动运行该命令,只是为了看看这是否是问题所在。它是。所以现在我真的很困惑:
这是我在发布模式下编译的 .Net 4.0 C# 应用程序。该应用程序位于:
C:\Program Files (x86)\MyCompany\MyProduct\MyProduct.exe
Run Code Online (Sandbox Code Playgroud)
我可以双击该应用程序并且它可以正常运行。我还可以打开 CMD 窗口并执行以下操作:
cd "C:\Program Files (x86)\MyCompany\MyProduct\"
MyProduct.exe
Run Code Online (Sandbox Code Playgroud)
该应用程序启动得很好。 但是,如果我尝试这样做:
"C:\Program Files (x86)\MyCompany\MyProduct\MyProduct.exe"
Run Code Online (Sandbox Code Playgroud)
应用程序不启动。(!)所以显然注册表项也不起作用。
是否必须采取某种额外步骤才能从完整路径运行 .Net 应用程序?
(我在 OS X 10.11.4 上的终端应用程序中使用 bash 3.2。)
我的文件中有这一行.bashrc:alias ll='ls -alFh'
我跑去echo ll > test && chmod +x test创建一个test可执行文件。以下是运行多个命令的结果、它们的退出代码(通过echo $?)和stdout:
test
退出代码 1
不产生标准输出
./test
退出代码 127
产生./test: line 1: ll: command not found
. test
退出代码 127
产生-bash: ????: command not found
. ./test
退出代码 0
产生与手动运行相同的结果ll
我知道退出代码 1 是一般错误,退出代码 127 意味着shell 无法找到该命令。有人可以解释一下每种情况下发生的情况以及原因吗,包括标准输出的描述?我对 #3 与????.
我有一个可用的 Python 3 脚本 inventoryScraper.py,我正在尝试将其制作成可以分发的 1 个文件可执行文件。我一直在使用 Pyinstaller 3 和 Python 3,它过去一直有效。我的脚本需要运行一个文件“Store_Codes.csv”,我希望将其包含在可执行文件中。
我已经阅读并尝试了之前与此相关的所有答案,但它没有起作用/我搞砸了。当 Store_Codes.csv 与 exe 位于同一文件夹中时,生成的 .exe 可以工作,但其他情况下则不行。我绝对是 Python 的新手,但我提供此信息的人没有任何命令行或任何相关经验,因此重要的是它是一个一体化文件。
我已经用我在其他帖子上看到的各种方式修改了规范文件,但没有一个起作用,我确信我误解了,我真的可以使用帮助。
使用 Pyinstaller 3 将数据文件包含在 onefile exe 中的直接方法是什么?
谢谢你!
我有一个为 Linux 服务器编译的程序。它是用 FORTRAN 编写的,尽管我认为这与这个问题不是特别相关。
在某个时刻,程序会输出open: No such file or directory
然后终止。
问题是我不知道程序试图打开哪个文件/目录。
如果有某种程序,有点像ldd(但不完全一样),可以运行它来显示二进制可执行文件正在尝试打开哪些文件,那就太好了。
这样的事情存在吗?如果没有的话有没有办法从Linux内核获取这些信息?
我创建了一个脚本来使用 tabula-py 和 PyPDF2 从 pdf 中提取数据。当我通过 Jupyter-notebook 和 cmd 运行我的程序时,它运行得很好。使用 pyinstaller 将其转换为可执行文件后,出现以下错误:
Error: Unable to access jarfile
E:\Users\paulhong\AppData\Local\Temp\_MEI175522\tabula\tabula-1.0.2-jar-with-dependencies.jar
Error:
Traceback (most recent call last):
File "test.py", line 115, in <module>
File "test.py", line 32, in extractDataDik
tempDf = tabula.read_pdf(file, area = (72, 252, 115.2, 352.8), guess=False, pages='1')
File "site-packages\tabula\wrapper.py", line 108, in read_pdf
File "subprocess.py", line 395, in check_output
File "subprocess.py", line 487, in run
subprocess.CalledProcessError: Command '['java', '-Dfile.encoding=UTF8', '-jar',
'E:\\Users\\paulhong\\AppData\\Local\\Temp\\_MEI175522\\tabula\\tabula-1.0.2-jar-with-dependencies.jar', '--pages', '1', '--area',
'72,252,115.2,352.8', 'E:\\Users\\paulhong\\Desktop\\Purchase Order
2\\SKM_C45819060508450 (003).pdf']' …Run Code Online (Sandbox Code Playgroud) 我是一个好人,希望为nuget.org做出贡献
我有一个无法使用 .NET 解决的任务(转换.pdf为.NET .html,但这不是要点,它可能是任何其他),但使用 Python 很容易处理。所以我编写了一个.py脚本,将其转换为单文件可执行文件,在 .NET 中编写了一些包装,然后它就可以工作了。
包装器基本上只是将可执行文件卸载到硬盘驱动器上的某个位置,通过命令行参数调用它并获取响应。
当我使用 lib 编译此代码时{fmt},可执行文件大小变为 255 KiB,而仅使用iostream标头则变为 65 KiB(使用 GCC v11.2)。
time_measure.cpp
#include <iostream>
#include "core.h"
#include <string_view>
int main( )
{
// std::cout << std::string_view( "Oh hi!" );
fmt::print( "{}", std::string_view( "Oh hi!" ) );
return 0;
}
Run Code Online (Sandbox Code Playgroud)
这是我的构建命令:
g++ -std=c++20 -Wall -O3 -DNDEBUG time_measure.cpp -I include format.cc -o runtime_measure.exe
Run Code Online (Sandbox Code Playgroud)
与 相比,这个库不{fmt}应该是轻量级的吗iostream?或者也许我做错了什么?
编辑:通过添加-s命令以从可执行文件中删除所有符号表和重定位信息,它变为 156 KiB。但仍然比版本多约 2.5 倍iostream。
我想我错过了一些简单的东西
我有一个Python诗歌应用程序:
name = "my-first-api"
version = "0.1.0"
description = ""
readme = "README.md"
packages = [{include = "application"}]
[tool.poetry.scripts]
start = "main:start"
[tool.poetry.dependencies]
python = ">=3.10,<3.12"
pip= "23.0.1"
setuptools="65.5.0"
fastapi="0.89.1"
uvicorn="0.20.0"
[tool.poetry.group.dev.dependencies]
pyinstaller = "^5.10.1"
pytest = "^7.3.1"
[build-system]
requires = ["poetry-core"]
build-backend = "poetry.core.masonry.api"
Run Code Online (Sandbox Code Playgroud)
我可以运行它并使用 Poetry 构建它,但是,我也希望能够使用诗歌脚本创建可执行文件。
现在我这样构建它:
poetry run pyinstaller main.py --collect-submodules application --onefile --name myapi
我想要类似的东西
poetry package也自动创建此可执行文件。我该如何连接它?
顺便提一句。这不起作用:(
[tool.poetry.scripts]
start = "main:start"
builddist = "poetry run pyinstaller main.py --collect-submodules application --onefile --name myapi"
Run Code Online (Sandbox Code Playgroud) 我注意到(至少在Win32上)在可执行文件中,代码段(.text)具有"读取"访问位设置,以及"执行"访问位.是否有任何真正合理的理由让代码自己阅读而不是自己执行?我认为这是其他部分的用途(例如.rdata).
(具体来说,我在谈论IMAGE_SCN_MEM_READ.)
我知道这主要是一种意见,但我很感兴趣,如果你有一个,你的理由是什么.