2

这是我在这里的第一个问题,希望不会是我的最后一个问题。由于我已经使用了很多人的一些答案,我想首先感谢你们所有人。

上下文:我正在为 Revit 开发一个模块,为此,我使用 pyRevit 与 Revit API 进行交换。pyRevit 允许我使用 Python 编写代码,我使用 PyCharm IDE 编写代码。

问题:当我尝试导入库时,出现“未解决的引用”错误消息。否则,该模块已经在 Revit 上运行,因此在使用它时可以顺利导入。

我已经尝试将文件夹的路径添加到 Files --> Settings --> Project Interpreter --> Interpreter path,然后将该文件夹标记为源文件夹(右键单击 --> Mark Directory As --> Source Root),然后使缓存无效/重新启动。路径是:

C:\Users\***\AppData\Roaming\pyRevit-Master\bin
C:\Program Files\Autodesk\Revit 2019

我还尝试在文件-> 设置--> 项目结构--> 添加内容根目录中添加这些文件夹。完成后,它们会出现在项目根目录中。在这里,右侧的导入失败(没有足够的声誉来发布图片,所以这是一个链接)

项目结构和红色导入

所以一切都被标记为“未解决的参考”,即使是系统导入。如何帮助 Pycharm 正确读取这些库、删除所有导入错误并简化自动完成和开发?我想知道 Revit 库是否受到保护,但在这种情况下,它至少应该与 pyRevit 和 System 一起使用。

任何帮助将不胜感激。

更新:将 Pyrevit 文件夹添加到项目结构并将其标记为源文件夹并单击文件 --> 无效缓存/重新启动后,pyRevit 的导入就可以了。好消息。

对于 Revit 文件夹(以及 Microsoft .NET 库,如 mscorlib(用于 List)),我认为它会失败,因为它们是从 C# 语言编译的。有没有办法使用 Python IDE 在 C# 中导入库,或者至少可以识别内部结构和函数名称?

4

3 回答 3

0

存根中似乎有很多 SyntaxError 。你纠正过他们吗?如果不是,您是如何在不更正文件的情况下使文件正常工作的?

SyntaxeError 示例:

File "C:\ironpython-stubs\release\stubs\System\__init__.py", line 7366
None = None
于 2020-10-21T14:59:11.210 回答
0

https://github.com/gtalarico/ironpython-stubs

尝试使用 clr、revit 等进行自动编译这些存根。但是,它不包括 pyRevit 库。

在 GitHub 链接上的文件夹 release 中找到存根并下载它。然后在 PyCharm 项目结构中引用该文件夹。

于 2019-10-07T09:14:36.987 回答
0

由于您使用的是 pyrevit,因此内置了一个存根构建器 - 这比 Ironpython-stubs 更完整,并且可以为您正在使用的 Revit 版本完成。

您可以在自己的扩展程序中运行此脚本,它应该可以工作。(注意 - 我已经通过 GitHub 上的安装程序安装了 pyRevit)

https://github.com/eirannejad/pyRevit/blob/7eb0a4e1f6d2509735b2da80168b1c8b0e5b2f20/extensions/pyRevitDevTools.extension/pyRevitDev.tab/Developer%20Tools.panel/Generate%20API%20Stubs.pushbutton/script.py

在您的解释器中添加生成的文件,您将拥有所有内容的存根。不过我会注意到,有时解释器不会理解你有什么样的元素(例如,即使你已经通过 DB.FilteredElementCollector.OfClass(DB .FabricationPart).ToElements()

于 2021-11-18T15:51:21.640 回答