标签: executable

应用程序不会从命令行完整路径启动,但会在 CD 到目录后启动

我正在尝试让 .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 应用程序?

c# windows executable path

3
推荐指数
1
解决办法
3011
查看次数

bash:???:找不到命令

(我在 OS X 10.11.4 上的终端应用程序中使用 bash 3.2。)

我的文件中有这一行.bashrc:alias ll='ls -alFh'

我跑去echo ll > test && chmod +x test创建一个test可执行文件。以下是运行多个命令的结果、它们的退出代码(通过echo $?)和stdout:

  1. test
    退出代码 1
    不产生标准输出

  2. ./test
    退出代码 127
    产生./test: line 1: ll: command not found

  3. . test
    退出代码 127
    产生-bash: ????: command not found

  4. . ./test
    退出代码 0
    产生与手动运行相同的结果ll

我知道退出代码 1 是一般错误,退出代码 127 意味着shell 无法找到该命令。有人可以解释一下每种情况下发生的情况以及原因吗,包括标准输出的描述?我对 #3 与????.

macos bash shell executable

3
推荐指数
1
解决办法
1640
查看次数

Pyinstaller 3 使用 --onefile 添加数据文件

我有一个可用的 Python 3 脚本 inventoryScraper.py,我正在尝试将其制作成可以分发的 1 个文件可执行文件。我一直在使用 Pyinstaller 3 和 Python 3,它过去一直有效。我的脚本需要运行一个文件“Store_Codes.csv”,我希望将其包含在可执行文件中。

我已经阅读并尝试了之前与此相关的所有答案,但它没有起作用/我搞砸了。当 Store_Codes.csv 与 exe 位于同一文件夹中时,生成的 .exe 可以工作,但其他情况下则不行。我绝对是 Python 的新手,但我提供此信息的人没有任何命令行或任何相关经验,因此重要的是它是一个一体化文件。

我已经用我在其他帖子上看到的各种方式修改了规范文件,但没有一个起作用,我确信我误解了,我真的可以使用帮助。

使用 Pyinstaller 3 将数据文件包含在 onefile exe 中的直接方法是什么?

谢谢你!

python executable pyinstaller python-3.x

3
推荐指数
1
解决办法
3859
查看次数

如何确定程序试图打开哪些文件?

我有一个为 Linux 服务器编译的程序。它是用 FORTRAN 编写的,尽管我认为这与这个问题不是特别相关。

在某个时刻,程序会输出open: No such file or directory

然后终止。

问题是我不知道程序试图打开哪个文件/目录。

如果有某种程序,有点像ldd(但不完全一样),可以运行它来显示二进制可执行文件正在尝试打开哪些文件,那就太好了。

这样的事情存在吗?如果没有的话有没有办法从Linux内核获取这些信息?

linux debugging executable file

3
推荐指数
1
解决办法
998
查看次数

将脚本转换为 exe 时无法执行我的脚本

我创建了一个脚本来使用 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)

java executable pyinstaller python-3.x tabula-py

3
推荐指数
1
解决办法
1658
查看次数

发布 nuget 包,其中包含可执行文件,nuget.org

我是一个好人,希望为nuget.org做出贡献

我有一个无法使用 .NET 解决的任务(转换.pdf为.NET .html,但这不是要点,它可能是任何其他),但使用 Python 很容易处理。所以我编写了一个.py脚本,将其转换为单文件可执行文件,在 .NET 中编写了一些包装,然后它就可以工作了。

包装器基本上只是将可执行文件卸载到硬盘驱动器上的某个位置,通过命令行参数调用它并获取响应。

  • 现在我该如何发布这个带有可执行文件的 nuget 呢?
  • 这还被允许吗?
  • 这个想法是否太糟糕了以至于我放弃了整个事情?
  • 我是否以某种方式明确警告用户该库包含一个可执行文件,该可执行文件将被复制到他们的硬盘驱动器上?
  • 提供 .py 脚本代码的链接(在哪里?)?
  • 以及对这段代码实际上是可执行文件内部的内容进行某种验证(如何?)?

.net executable publish package nuget

3
推荐指数
1
解决办法
1091
查看次数

如何减小可执行文件的大小?

当我使用 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。

c++ executable gcc fmt

3
推荐指数
1
解决办法
2731
查看次数

使用诗歌在“包”上使用 pyinstaller 创建二进制可分发文件?

我想我错过了一些简单的东西

我有一个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)

python executable package python-poetry

3
推荐指数
1
解决办法
4704
查看次数

标记为"执行"和"读取"的可执行部分?

我注意到(至少在Win32上)在可执行文件中,代码段(.text)具有"读取"访问位设置,以及"执行"访问位.是否有任何真正合理的理由让代码自己阅读而不是自己执行?我认为这是其他部分的用途(例如.rdata).

(具体来说,我在谈论IMAGE_SCN_MEM_READ.)

memory winapi executable portable-executable

2
推荐指数
1
解决办法
248
查看次数

2
推荐指数
1
解决办法
408
查看次数