PTVS:如何在一个项目中从另一个项目引用或使用 Python 源代码
PTVS: How to reference or use Python source code in one project from a second project
在带有 PTVS 的 Visual Studio 中,我有两个单独的 Python 项目,其中一个包含一个名为 lib.py
的 Python 源文件用作函数库,另一个是使用库中函数的 main。我在 main 中使用 import
语句来引用库项目中的函数,但出现以下错误:
No module named lib
我主要使用 Visual Studio 在 F# 中编程,所以我的想法是添加对其他 .NET 项目的引用。
我怎么想 Pythonic 方法来完成这个?
Python 不像 .NET 那样使用引用,而是使用搜索的路径。需要修改搜索路径以包括包含源文件的目录。参见:The Module Search Path
查看 Visual Studio 中 Solution Explorer
的项目显示每个项目 Search Paths
。
修改搜索路径:
获取包含要导入的源代码的 Python 文件的目录。
例如lib.py
在解决方案资源管理器中右键单击 lib.py
和 select Copy Path
现在对于将导入模块的项目
例如ConsoleDriver_Python
右键单击 Search Paths
和 select Add Folder to Search Path...
显示 select 文件夹对话框
右键单击并粘贴剪贴板中的路径。也可以通过删除文件名将其更改为目录。
点击Select Folder
现在检查项目以确保 Search Path
已更新。
现在应该清除导入错误。
除了经过验证的答案之外,我只想针对非常具体的情况添加以下内容。
我最近被要求解决 OP 在工作机器上遇到的相同问题,该机器最近将用户帐户迁移到新域。
设置:
Visual Studio 2013
PTVS 2.2.30718
蟒蛇 3.5
基本上,Anaconda 是为 localmachine/UserA 安装的。
将用户迁移到新域 (newdomain/UserA) 后,必须从 VS2013 中更新 Python 环境,方法是单击查看 > 其他 Windows > Python环境。
设置完成后,python 脚本将按预期 运行,尽管搜索文件夹引用的 none 会起作用。然后他们被删除 re-added 但无济于事。
尝试了各种其他方法,包括设置全新的项目,并使用搜索路径链接它们,但无济于事。
解决问题的唯一方法是在用户帐户之外重新安装 Python 环境(在我的例子中是 Anaconda3)(通过在安装过程中单击 "for all users, using administrator privileges" 选项)。
然后我重新启动,删除并 re-added 搜索文件夹,python 按预期工作,包括所有搜索路径。
我希望这对某人有所帮助,因为我只是浪费了几个小时来解决它...
D :)
或者您可以使用以下代码在代码中执行此操作:
sys.path.append("search path")
这样代码就可以运行在IDE之外了。
在带有 PTVS 的 Visual Studio 中,我有两个单独的 Python 项目,其中一个包含一个名为 lib.py
的 Python 源文件用作函数库,另一个是使用库中函数的 main。我在 main 中使用 import
语句来引用库项目中的函数,但出现以下错误:
No module named lib
我主要使用 Visual Studio 在 F# 中编程,所以我的想法是添加对其他 .NET 项目的引用。
我怎么想 Pythonic 方法来完成这个?
Python 不像 .NET 那样使用引用,而是使用搜索的路径。需要修改搜索路径以包括包含源文件的目录。参见:The Module Search Path
查看 Visual Studio 中 Solution Explorer
的项目显示每个项目 Search Paths
。
修改搜索路径:
获取包含要导入的源代码的 Python 文件的目录。
例如lib.py
在解决方案资源管理器中右键单击 lib.py
和 select Copy Path
现在对于将导入模块的项目
例如ConsoleDriver_Python
右键单击 Search Paths
和 select Add Folder to Search Path...
显示 select 文件夹对话框
右键单击并粘贴剪贴板中的路径。也可以通过删除文件名将其更改为目录。
点击Select Folder
现在检查项目以确保 Search Path
已更新。
现在应该清除导入错误。
除了经过验证的答案之外,我只想针对非常具体的情况添加以下内容。
我最近被要求解决 OP 在工作机器上遇到的相同问题,该机器最近将用户帐户迁移到新域。
设置: Visual Studio 2013 PTVS 2.2.30718 蟒蛇 3.5
基本上,Anaconda 是为 localmachine/UserA 安装的。
将用户迁移到新域 (newdomain/UserA) 后,必须从 VS2013 中更新 Python 环境,方法是单击查看 > 其他 Windows > Python环境。
设置完成后,python 脚本将按预期 运行,尽管搜索文件夹引用的 none 会起作用。然后他们被删除 re-added 但无济于事。
尝试了各种其他方法,包括设置全新的项目,并使用搜索路径链接它们,但无济于事。
解决问题的唯一方法是在用户帐户之外重新安装 Python 环境(在我的例子中是 Anaconda3)(通过在安装过程中单击 "for all users, using administrator privileges" 选项)。
然后我重新启动,删除并 re-added 搜索文件夹,python 按预期工作,包括所有搜索路径。
我希望这对某人有所帮助,因为我只是浪费了几个小时来解决它...
D :)
或者您可以使用以下代码在代码中执行此操作:
sys.path.append("search path")
这样代码就可以运行在IDE之外了。