为什么我的 python 程序每次使用 ursina 引擎时都会给我一个 filenotfound WinError 3?
Why is my python program giving me a filenotfound WinError 3 every time I use the ursina engine?
我最近安装了 Ursina 游戏引擎并开始使用它,但是当我编写一个基本程序时,它给了我一个与 ursina 中的一些内置程序相矛盾的回溯
并以指向与 python 无关的音乐文件夹的 Filenotfound Winerror 3 结束,我仔细检查了 Ursina 是否安装正确,但事实并非如此,我检查了它指向的文件夹预期仅包含音乐。引擎的路径有问题吗?我希望你能回答我。无论如何,这是代码:
from ursina import * # this will import everything we need from ursina with just one line.
app = Ursina()
player = Entity(
model = 'cube' , # finds a 3d model by name
color = color.orange,
scale_y = 2
)
def update(): # update gets automatically called by the engine.
player.x += held_keys['d'] * .1
player.x -= held_keys['a'] * .1
app.run()
错误信息:
> package_folder: C:\Users\user\AppData\Local\Programs\Python\Python39\lib\site-packages\ursina
asset_folder: c:\Users\user\Desktop
screen resolution: (1920, 1080)
Traceback (most recent call last):
File "c:\Users\user\Desktop\geme.py", line 1, in <module>
from ursina import * # this will import everything we need from ursina with just one line.
File "C:\Users\user\AppData\Local\Programs\Python\Python39\lib\site-packages\ursina\__init__.py", line 28, in <module>
from ursina.raycaster import raycast, boxcast
File "C:\Users\user\AppData\Local\Programs\Python\Python39\lib\site-packages\ursina\raycaster.py", line 14, in <module>
class Raycaster(Entity):
File "C:\Users\user\AppData\Local\Programs\Python\Python39\lib\site-packages\ursina\raycaster.py", line 16, in Raycaster
_boxcast_box = Entity(model='cube', origin_z=-.5, collider='box', color=color.white33, enabled=False, eternal=True)
File "C:\Users\user\AppData\Local\Programs\Python\Python39\lib\site-packages\ursina\entity.py", line 105, in __init__
setattr(self, key, kwargs[key])
File "C:\Users\user\AppData\Local\Programs\Python\Python39\lib\site-packages\ursina\entity.py", line 201, in __setattr__
m = load_model(value, application.asset_folder)
File "C:\Users\user\AppData\Local\Programs\Python\Python39\lib\site-packages\ursina\mesh_importer.py", line 38, in load_model
for filename in path.glob(f'**/{name}{filetype}'):
File "C:\Users\user\AppData\Local\Programs\Python\Python39\lib\pathlib.py", line 1166, in glob
for p in selector.select_from(self):
File "C:\Users\user\AppData\Local\Programs\Python\Python39\lib\pathlib.py", line 599, in _select_from
for starting_point in self._iterate_directories(parent_path, is_dir, scandir):
File "C:\Users\user\AppData\Local\Programs\Python\Python39\lib\pathlib.py", line 589, in _iterate_directories
for p in self._iterate_directories(path, is_dir, scandir):
File "C:\Users\user\AppData\Local\Programs\Python\Python39\lib\pathlib.py", line 589, in _iterate_directories
for p in self._iterate_directories(path, is_dir, scandir):
File "C:\Users\user\AppData\Local\Programs\Python\Python39\lib\pathlib.py", line 589, in _iterate_directories
for p in self._iterate_directories(path, is_dir, scandir):
[Previous line repeated 12 more times]
File "C:\Users\user\AppData\Local\Programs\Python\Python39\lib\pathlib.py", line 578, in _iterate_directories
with scandir(parent_path) as scandir_it:
FileNotFoundError: [WinError 3] The system cannot find the path specified: 'c:\Users\user\Desktop\Education\Music\Plugins & wav\unison midi pack\Chord-Templates-s8nrci\Chord Templates\Blues Chord Templates Pack\Major\Ab_Major\Substitute
Chords\Borrowed Chords\Dominant\Dominant7 b5 Chords\Dominant7 b5 Chord Inversions\A#7 b5 Inversions'
由于您将脚本直接放在桌面上,因此您将其作为项目文件夹。因此,当您尝试加载模型时,ursina 将在桌面上搜索您的所有文件和文件夹以查找与该名称匹配的文件。
将您的脚本和相关资产移动到一个单独的文件夹中。
我最近安装了 Ursina 游戏引擎并开始使用它,但是当我编写一个基本程序时,它给了我一个与 ursina 中的一些内置程序相矛盾的回溯 并以指向与 python 无关的音乐文件夹的 Filenotfound Winerror 3 结束,我仔细检查了 Ursina 是否安装正确,但事实并非如此,我检查了它指向的文件夹预期仅包含音乐。引擎的路径有问题吗?我希望你能回答我。无论如何,这是代码:
from ursina import * # this will import everything we need from ursina with just one line.
app = Ursina()
player = Entity(
model = 'cube' , # finds a 3d model by name
color = color.orange,
scale_y = 2
)
def update(): # update gets automatically called by the engine.
player.x += held_keys['d'] * .1
player.x -= held_keys['a'] * .1
app.run()
错误信息:
> package_folder: C:\Users\user\AppData\Local\Programs\Python\Python39\lib\site-packages\ursina
asset_folder: c:\Users\user\Desktop
screen resolution: (1920, 1080)
Traceback (most recent call last):
File "c:\Users\user\Desktop\geme.py", line 1, in <module>
from ursina import * # this will import everything we need from ursina with just one line.
File "C:\Users\user\AppData\Local\Programs\Python\Python39\lib\site-packages\ursina\__init__.py", line 28, in <module>
from ursina.raycaster import raycast, boxcast
File "C:\Users\user\AppData\Local\Programs\Python\Python39\lib\site-packages\ursina\raycaster.py", line 14, in <module>
class Raycaster(Entity):
File "C:\Users\user\AppData\Local\Programs\Python\Python39\lib\site-packages\ursina\raycaster.py", line 16, in Raycaster
_boxcast_box = Entity(model='cube', origin_z=-.5, collider='box', color=color.white33, enabled=False, eternal=True)
File "C:\Users\user\AppData\Local\Programs\Python\Python39\lib\site-packages\ursina\entity.py", line 105, in __init__
setattr(self, key, kwargs[key])
File "C:\Users\user\AppData\Local\Programs\Python\Python39\lib\site-packages\ursina\entity.py", line 201, in __setattr__
m = load_model(value, application.asset_folder)
File "C:\Users\user\AppData\Local\Programs\Python\Python39\lib\site-packages\ursina\mesh_importer.py", line 38, in load_model
for filename in path.glob(f'**/{name}{filetype}'):
File "C:\Users\user\AppData\Local\Programs\Python\Python39\lib\pathlib.py", line 1166, in glob
for p in selector.select_from(self):
File "C:\Users\user\AppData\Local\Programs\Python\Python39\lib\pathlib.py", line 599, in _select_from
for starting_point in self._iterate_directories(parent_path, is_dir, scandir):
File "C:\Users\user\AppData\Local\Programs\Python\Python39\lib\pathlib.py", line 589, in _iterate_directories
for p in self._iterate_directories(path, is_dir, scandir):
File "C:\Users\user\AppData\Local\Programs\Python\Python39\lib\pathlib.py", line 589, in _iterate_directories
for p in self._iterate_directories(path, is_dir, scandir):
File "C:\Users\user\AppData\Local\Programs\Python\Python39\lib\pathlib.py", line 589, in _iterate_directories
for p in self._iterate_directories(path, is_dir, scandir):
[Previous line repeated 12 more times]
File "C:\Users\user\AppData\Local\Programs\Python\Python39\lib\pathlib.py", line 578, in _iterate_directories
with scandir(parent_path) as scandir_it:
FileNotFoundError: [WinError 3] The system cannot find the path specified: 'c:\Users\user\Desktop\Education\Music\Plugins & wav\unison midi pack\Chord-Templates-s8nrci\Chord Templates\Blues Chord Templates Pack\Major\Ab_Major\Substitute
Chords\Borrowed Chords\Dominant\Dominant7 b5 Chords\Dominant7 b5 Chord Inversions\A#7 b5 Inversions'
由于您将脚本直接放在桌面上,因此您将其作为项目文件夹。因此,当您尝试加载模型时,ursina 将在桌面上搜索您的所有文件和文件夹以查找与该名称匹配的文件。
将您的脚本和相关资产移动到一个单独的文件夹中。