Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/selenium/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
FileNotFoundError隐藏Python_Python_Selenium_Pyinstaller - Fatal编程技术网

FileNotFoundError隐藏Python

FileNotFoundError隐藏Python,python,selenium,pyinstaller,Python,Selenium,Pyinstaller,我正在MacOS上运行Python 3.9.3中的selenium隐形 当我使用PyInstaller构建应用程序时( pyinstaller--noconfirm--onefile--console--hidden import“cmath”“/Users/name/Downloads/AmazonSellerCentral/main.py”)我收到以下错误: 回溯(最近一次呼叫最后一次): 文件“main.py”,第141行,在 文件“main.py”,第77行,在创建驱动程序中 文件“Se

我正在MacOS上运行Python 3.9.3中的selenium隐形

当我使用PyInstaller构建应用程序时(
pyinstaller--noconfirm--onefile--console--hidden import“cmath”“/Users/name/Downloads/AmazonSellerCentral/main.py”
)我收到以下错误:

回溯(最近一次呼叫最后一次):
文件“main.py”,第141行,在
文件“main.py”,第77行,在创建驱动程序中
文件“Seleniu_隐身/_init__.py”,第45行,隐身
文件“selenium_隐身/utils.py”,第8行,与_utils一起
文件“pathlib.py”,第1255行,只读文本
文件“pathlib.py”,第1241行,打开
文件“pathlib.py”,第1109行,在_opener中
FileNotFoundError:[Errno 2]没有这样的文件或目录:'/var/folders/7z/3spcsmdx5n344dh0fb5j0hl40000gn/T/_-MEIqfmicz/selenium\u/js/utils.js'

但是,只要运行
python3main.py
就可以了


重新安装selenium隐身没有任何作用,我不确定我可以从这里尝试修复/更改什么?

您收到的错误表明文件路径可能有问题

确保文件
utils.js
存在于它试图定位的路径中


如果没有,您可以尝试从外部下载它并将其放置在该路径中。不过,我认为这不是一个好的建议。

快速周转(有关问题,请参阅我在评论部分的评论):
步骤1:构建包,请参阅代码部分中的命令)
步骤2:创建文件夹-->dist\your package(在我的例子中是slhpackage)\selenium\u destactive\js
步骤3-从中复制js文件,并将其放入步骤2中创建的文件夹中

现在,您的可执行文件应该运行良好

pyinstaller slhpackage.py # build package (1)


我使用了Python3.9,今天遇到了同样的问题。正如@simpleApp所说,我遵循了相同的方法,修改的次数最少,到目前为止它对我有效

遵循以下给定步骤:
  • 请确保已从中复制所有文件
  • 粘贴
    文件夹中的所有文件\u name(可能是您想要的)/selenium\u隐身/js

    [请确保您保留名称selenium\u隐身/js,不作任何修改,否则您将面临冲突。]
  • 然后运行添加了文件夹名称的可执行命令
为了方便起见,我将它添加到这里,这样不仅对您更方便,而且对每个使用它的人都更方便

pyinstaller --noconfirm --onefile --console --icon "dir:\path\to\icon.ico" --add-data "dir:\path\to\folder_name\mentioned\above;." --add-binary "dir:/path/to/chromedriver/chromedriver.exe;./selenium/webdriver" "dir:/path/to/your/python/file.py"
复制代码,根据文件路径修改它(我已经给出了通用名称)。 我建议您制作一个
.bat
文件,将代码粘贴到其中,以备将来使用

下面是我的代码片段:

@ECHO OFF
color 09
echo Immediate direct Conversion of .py to .exe standalone by PiXinCreate
echo.
pyinstaller --noconfirm --onefile --console --icon "dir:\path\to\icon.ico" --add-data "dir:\path\to\folder_name\mentioned\above;." --add-binary "dir:/path/to/chromedriver/chromedriver.exe;./selenium/webdriver" "dir:/path/to/your/python/file.py"
echo.
echo .exe has been successfully created for .py 
echo.
pause.
exit
  • 我的代码实际上在终端窗口中创建了一个单独的可执行文件
  • 如果不需要,可以删除图标部分。 如果出现任何问题,请随时回复

它肯定在路径中,并且在以.py文件运行时运行良好,只是不是作为同一路径中的应用程序。仍然是同一个问题,我不认为它可以作为我的代码,因为它在WIndows上运行良好,在WIndows和Mac上作为.py文件运行良好,可能是3.9.3的问题。抱歉。我试过3.9.2,效果也不错。fyip。。我在mac 10.15.7(macOS Catalina)上,我认为我发现了问题,但需要时间进一步调查。我认为,我已经发现了问题,但需要时间进一步调查。请参阅“”,了解它使用Path(file).parent.joinpath(“js/utils.js”).read_text()选择的js文件夹,该文件由pyinstaller更改。第二个问题是pyinstaller没有放置需要显式放置的js文件夹。一种方法是克隆并参与selenium隐身,或者如果文件可以被覆盖,则在pyinstaller中探索选项。一旦我有时间,如果我能解决这个问题,我会问的。一旦得到修复,将更新答案。Thxagred这很可能会起作用,我还没有测试过它,但它并没有以理想的方式真正解决问题,也许这意味着编辑远远不理想的源代码
@ECHO OFF
color 09
echo Immediate direct Conversion of .py to .exe standalone by PiXinCreate
echo.
pyinstaller --noconfirm --onefile --console --icon "dir:\path\to\icon.ico" --add-data "dir:\path\to\folder_name\mentioned\above;." --add-binary "dir:/path/to/chromedriver/chromedriver.exe;./selenium/webdriver" "dir:/path/to/your/python/file.py"
echo.
echo .exe has been successfully created for .py 
echo.
pause.
exit