在 Windows 10 中使用 Pycharm 的路径和权限问题

Posted

技术标签:

【中文标题】在 Windows 10 中使用 Pycharm 的路径和权限问题【英文标题】:Path and Permission Issues using Pycharm with Windows 10 【发布时间】:2016-08-04 14:03:30 【问题描述】:

问题

我在 Windows 10 上使用 Pycharm 时遇到权限错误和代码不一致。我可以在我的 Windows 10 桌面上使用这段代码,但它在我的 Surface 4 上不起作用:

xlsx = pd.ExcelFile('\test\Participant01Master.xlsx')

请注意文件夹和文件在我的 PyCharm IDE 项目中。我正在为上面给出的代码使用 pandas。但是,给我的错误是:

FileNotFoundError: [Errno 2] No such file or directory: '/test/Participant01Master.xlsx'

我认为我的 xlrd 依赖项可能有些奇怪。所以,我尝试卸载 xlrd 包(重新安装),得到以下结果:

尝试的解决方案

我可以成功地使用代码df = pd.read_excel(open('C:\\Users\hlyates\Source\Repos\Project0\Data\Participant01Master.xlsx','rb')) 来读取我的文件。但是,这感觉很恶心,因为我的 xlxs 代码行适用于一台机器而不适用于另一台机器?

至于路径,我验证了 PyCharm 在管理员组中,并且我的用户配置文件具有相同的权限和特殊访问权限。

总结

这真的扼杀了我对 Windows 生态系统的热情吗?我觉得 PyCharm 在我的 Windows 10 机器上没有按预期工作。当我和管理员组已经拥有此权限时,当 PyCharm 管理员(这似乎解决了一些奇怪的文件权限问题)时,我不应该右键单击并“以管理员身份运行”。我还认为代码在我的桌面上适用于我的 IDE 而不是 Surface 4 是很奇怪的。我不会像用这些东西做 Windows 那样与 Linux 抗争。我只分享这两个问题是因为我觉得它们可能相关?如果我在做一些愚蠢的事情,一定要指出这一点,我会纠正它,但我正在尽我所能提供的信息。谢谢你的耐心。 :)

参考文献

我正在使用找到的代码 here 进行测试。

【问题讨论】:

谢谢。这些是有用的 cmets。我注意到我编写的代码在 main 中有效,但在 helper.py 文件中无效。不知道为什么会这样。 【参考方案1】:

您应该只安装 Python 而不是“Program Files”文件夹,尝试“C:\Python\python35-32\”,一切都会好起来的。如果您想了解更多详情,请查看this主题。

关于 Windows 10 的炒作太多了,实际上并没有什么特别之处。

【讨论】:

我将卸载 python35 并按照您所说的方式重新安装。【参考方案2】:

可能发生的一个问题是文件分隔符的问题。看起来您在路径名中使用了反斜杠。 Python 将 '\' 视为转义字符。要规范您的文件路径(独立于操作系统),请使用 os.path.normpath 将斜杠转换为当前操作系统使用的文件分隔符:

xlsx = pd.ExcelFile(os.path.normpath('\test\Participant01Master.xlsx'))

另一种方法可以使用os.sep 代替斜杠。这将为运行 python 的 OS 使用正确的文件分隔符:

xlsx = pd.ExcelFile('0test0Participant01Master.xlsx'.format(os.sep))

参考资料: 操作系统路径文档:https://docs.python.org/2/library/os.path.html#os.path.normpath

操作系统 sep 文档:https://docs.python.org/2/library/os.html#os.sep

关于 python 文件路径的博客:https://pythonconquerstheuniverse.wordpress.com/2008/06/04/gotcha-%E2%80%94-backslashes-in-windows-filenames/

【讨论】:

【参考方案3】:

我在 Windows 10 中使用 pycharm 在我使用下一个的任何系统中查找文件:

from os.path import expanduser, join, dirname, abspath
home = expanduser("~")  # this is the path to the home folder of the current user
curdir = dirname(abspath(__file__))  # This one returns the path to the file that is running
filepath = join (curdir, 'filename.txt')  # This one joins the path of my current directory to a file name (or any other path) independent of the system

我已经对此进行了测试,并且可以在 Linux 和 Windows 中使用

【讨论】:

以上是关于在 Windows 10 中使用 Pycharm 的路径和权限问题的主要内容,如果未能解决你的问题,请参考以下文章

无法在 pycharm 中获取 docker 解释器(在 Windows 10 中运行)

pycharm使用windows10子系统ubuntu环境运行python

在 Windows 上将 Tensorflow 与 Anaconda 和 PyCharm 一起使用

windows10 下使用Pycharm2016 基于Anaconda3 Python3.6 安装Mysql驱动总结

如何在Anaconda / PyCharm Windows 10上安装TFLearn?

Windows 10 下的OpenVINO Pycharm+Anaconda开发环境配置