PTVS:如何在第二个项目的一个项目中引用或使用Python源代码

时间:2016-02-18 14:57:02

标签: python module ptvs

在带有PTVS的Visual Studio中,我有两个单独的 Python项目,其中一个包含一个名为lib.py的Python源文件,用作函数库,另一个是使用库中的函数。我在main中使用import语句来引用库项目中的函数,但是得到以下错误:

  

没有名为lib的模块

我主要使用Visual Studio在F#中编程,所以我的心态是添加对其他.NET项目的引用。

我如何用Pythonic的方式来实现这个目标?

3 个答案:

答案 0 :(得分:16)

Python不使用类似.NET的引用,而是使用搜索的路径。需要修改搜索路径以包含包含源文件的目录。请参阅:The Module Search Path

使用Solution Explorer查看Visual Studio中的项目,为每个项目显示Search Paths

enter image description here

修改搜索路径:

获取包含要导入的源代码的Python文件的目录。

e.g。 lib.py

在解决方案资源管理器中右键单击lib.py,然后选择Copy Path

enter image description here

现在将导入模块的项目
例如ConsoleDriver_Python

右键点击Search Paths,然后选择Add Folder to Search Path...

enter image description here

显示选择文件夹对话框

enter image description here

右键单击并粘贴剪贴板中的路径。还可以通过删除文件名将其更改为目录。

enter image description here

点击Select Folder

现在检查项目以确保Search Path已更新。

enter image description here

现在应该清除导入错误。

答案 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之外运行。