在带有PTVS的Visual Studio中,我有两个单独的 Python项目,其中一个包含一个名为lib.py
的Python源文件,用作函数库,另一个是使用库中的函数。我在main中使用import
语句来引用库项目中的函数,但是得到以下错误:
没有名为lib的模块
我主要使用Visual Studio在F#中编程,所以我的心态是添加对其他.NET项目的引用。
我如何用Pythonic的方式来实现这个目标?
答案 0 :(得分:16)
Python不使用类似.NET的引用,而是使用搜索的路径。需要修改搜索路径以包含包含源文件的目录。请参阅:The Module Search Path
使用Solution Explorer
查看Visual Studio中的项目,为每个项目显示Search Paths
。
修改搜索路径:
获取包含要导入的源代码的Python文件的目录。
e.g。 lib.py
在解决方案资源管理器中右键单击lib.py
,然后选择Copy Path
现在将导入模块的项目
例如ConsoleDriver_Python
右键点击Search Paths
,然后选择Add Folder to Search Path...
显示选择文件夹对话框
右键单击并粘贴剪贴板中的路径。还可以通过删除文件名将其更改为目录。
点击Select Folder
现在检查项目以确保Search Path
已更新。
现在应该清除导入错误。
答案 1 :(得分:3)
我只想在经过验证的答案中添加以下内容,以了解非常具体的情况。
我最近被要求解决OP遇到的问题,即最近将用户帐户迁移到新域的工作机器。
设定: Visual Studio 2013 PTVS 2.2.30718 Anaconda 3.5
基本上,为本地机器/ UserA安装了Anaconda。
将用户迁移到新域(newdomain / UserA)后,必须通过单击View>在VS2013中更新Python环境。其他Windows> Python环境。
一旦设置完毕,python脚本将按预期运行,尽管搜索文件夹引用都不起作用。然后将它们移除并重新添加,但无济于事。
尝试了各种其他方面,包括设置全新项目,并使用搜索路径链接它们,但无济于事。
解决问题的唯一方法是在用户帐户之外重新安装Python环境(在我的案例中为Anaconda3)(通过单击"对于所有用户,使用管理员权限"安装期间的选项)
然后我重新启动,删除并重新添加搜索文件夹,python按预期工作,包括所有搜索路径。
我希望能帮助某人,因为我浪费时间来解决它...
D:)
答案 2 :(得分:0)
或者您可以在代码中执行以下操作:
sys.path.append("search path")
这样代码就可以在IDE之外运行。