当前位置: 首页 > 知识库问答 >
问题:

将自定义目录添加到PYTHONPATH

尹冠宇
2023-03-14

我一直在尝试向<code>PYTHONPATH</code>添加一个自定义目录。我在Mac上使用bash,如果相关的话。这就是我所做的:

    < li> 打开~/。bash_profile < li> 导出Python path = " $ { Python path }:/Users/Zhengnan/library/Python/2.7/lib/Python/site-packages " 并保存 < li> source ~/。bash_profile

有两个问题:

    < li >当我在Python IDE中运行< code>sys.path时,目标目录仍然没有出现。 < li >当我在终端中启动Python并在那里运行< code>sys.path时,确实显示了目录,但是所有其他目录都与我在上一步中获得的不匹配。

具体来说,这是我在 IDE 中运行系统路径所得到的。找不到预期的目录。

sys.path [' ','/Applications/Spyder-py2 . app/Contents/Resources ','/Applications/Spyder-py2 . app/Contents/Resources/lib/python 27 . zip ','/Applications/Spyder-py2 . app/Contents/Resources/lib/python 2.7 ','/Applications/Spyder-py2 . app/Contents/Resources/lib/python 2.7/plat-Darwin ','/Applications/Spyder-py2 . app/Contents/Resources/lib/python 2ipython']

这是我从终端运行sys.path得到的结果。预期的目录是列表中的第三个元素。

系统路径 ['', '/用户/正南', '/用户/正南/库/蟒蛇/2.7/自由/蟒蛇/站点包“, ”/系统/库/框架/蟒蛇框架/版本/2.7/库/蟒蛇27.zip“, ”/系统/库/框架/蟒蛇/框架/版本/2.7/lib/python2.7“, ”/系统/库/python.2.7/python.框架/版本/2.7/库/python2.7/平台-mac“, ”/系统/库/框架/平台-mac“, ”/系统/库/框架/平台Python.framework/Versions/2.7/lib/python2.7/plat-mac/lib-scriptpacks', '/System/Library/python2.7/python2.7/python2.7/platb-mac/lib-tk', '/System/Library/框架/Python., '/System/Library/框架/版本/2.7/库/python.框架/版本/2.7/库/python.框架/版本/2.7/python.框架/版本/2.7/python2.7/lib-dynload', '/系统/库/框架/版本/Python.框架/版本/2.7/附加功能/自由/蟒蛇/蟒蛇/蟒蛇尾猴']

我应该提到,我想将这个自定义目录添加到<code>PYTHONPATH</code>中的原因是,每次我<code<pip>安装</code>包时,它都会安装在<code>/Users/Zhengnan/Library/Python/2.7/lib/Python/site-packages</code>中,我不想安装<code>sys.path。每次运行脚本时都要附加。请告知。谢谢

共有1个答案

莘睿
2023-03-14

这里发生了很多事情。

从根本上说,您在IDE中使用的Python不是您在终端中使用的Python。这就是为什么pip install没有把东西放在正确的位置。

最简单的解决方案是修改$PATH环境变量,以便在终端中键入python时,获得与IDE相同的版本。我的猜测是,你的IDE的python类似于/应用程序/间谍 Py2.app/Contents/Resources/bin/python,在这种情况下,你会摆脱你的PYTHONPATH设置你的.bash_profile并添加:

export PATH="/Applications/Spyder-Py2.app/Contents/Resources/bin:$PATH"

假设< code>pip在同一个地方可用,现在您应该能够< code>pip install东西,而不需要使用< code>PYTHONPATH。

这里的另一个问题是在shell中设置的环境变量,例如,在您的.bash_profile中,对应用程序可见的环境没有影响。可以设置对OS X应用程序可见的环境变量(例如,参见这个问题),但这很棘手,我不建议这样做。

如果可用,另一种解决方案是告诉您的IDE应该使用哪一个<code>python</code>,并将其指向从终端可见的任何一个。

 类似资料:
  • 我正在尝试将一个自定义项目添加到发行版中。我创建的项目通过 mvn原型:generate-darchetypeGroupid=org.opendaylight.controller-darchetypeArtifactid=opendaylight-startup-archetype-darchetypePerepository=https://nexus.opendaylight.org/con

  • 问题内容: 我已经构建了自己的自定义react-bootstrap Popover组件: 该组件的呈现方式如下: 现在,我想向组件中添加自定义道具,例如:我的文字,并使用新道具在弹出框中设置一些内容,例如- 但随后我在浏览器中收到此警告: 警告:标签上的未知道具。从元素中删除这些道具。 现在,我想我可以删除零件并逐个插入所有原始道具,而无需自定义道具,但是这样我就失去了“淡入淡出”效果,这也是处理

  • 问题内容: 我正在尝试从特定目录导入模块。 问题是,如果我使用附加路径然后打开python解释器,则该目录将添加到列表sys.path的末尾。如果我在打开python解释器之前导出变量,则目录将添加到列表的开头。在后一种情况下,我可以导入模块,而在前一种情况下,我不能。 有人可以解释为什么会发生这种情况,并给我一个 在 python脚本中将其添加到开始的解决方案吗? __ 问题答案: 如文档所述,

  • 我试图从一个特定的目录中导入一个模块。 问题是如果我使用<code>sys.path。append(moddirectory)要附加路径,然后打开python解释器,目录将添加到列表sys.path的末尾。如果我在打开python解释器之前导出变量,那么该目录将被添加到列表的开头。在后一种情况下,我可以导入模块,但在前一种情况中,我不能。 有人可以解释为什么会发生这种情况,并给我一个解决方案,在

  • 问题内容: 我正在研究启用AJAX的asp.net应用程序。我刚刚向Array.prototype添加了一些方法,例如 该解决方案对我有用,可以以“漂亮”的方式重用代码。 但是,当我测试了它与整个页面一起使用时,我遇到了问题。我们有了一些自定义的Ajax扩展程序,它们开始表现出意想不到的效果:某些控件在其内容或值上显示为“未定义”。 这可能是什么原因?我是否缺少修改标准对象原型的东西? 注意:我很

  • 如果我创建一个继承JComponent的新类,我重写了JComponent的绘图Component(Graphics g)方法,通过使用g绘制一个圆圈,我应该修改什么才能使MouseListener仅在我单击组件的边界内时触发? 因为我在组件的构造函数中添加了setBounds(…)然后添加了一个MouseListener,但它会在我每次单击自定义组件所在容器中的任何位置时触发,而不仅仅是在我单击