我在MAC OSX 10.11.4上安装Python 3.4时遇到了一个非常基本的问题。我已经在我的.bash_profile中设置了我的PYTHONPATH,并且从终端运行python时找到了路径,如果我导入sys并检查终端中的sys.path,我会看到我预期的路径。
但是,当我加载IDLE并查看路径浏览器时,PYTHONPATH条目不在sys.path中,我的代码也没有运行。有几个帖子谈论添加代码以添加到IDLE中的sys.path,但这是一个我不想做的黑客攻击。如何让IDLE将PYTHONPATH条目读入sys.path?
一些进一步的信息:在Windows上,我设置了一个可变的PYTHONPATH环境,路径确实显示在路径浏览器中。
这是OSX上IDLE的一个基本问题,还是我在安装中搞砸了一些东西,或者?
答案 0 :(得分:0)
这种行为的原因是您拥有不同的环境变量范围。只有通过打开终端启动新的bash会话时,才会加载您在.bash_profile中设置的变量。但是当你通过点击它打开IDLE时,你会有一组不同的环境变量。这就是当你通过终端呼叫IDLE时它起作用的原因。这样,所有环境变量都会传递给您启动的进程。
至少有两种解决方案:
@Override
public String toString() {
StringBuilder sb = new StringBuilder();
if (startX == endX) {
if (startY < endY) {
for (int i = startY; i <= endY; i++)
sb.append(i).append("x").append(startY).append(" ");
} else {
for (int i = endY; i <= startY; i++)
sb.append(i).append("x").append(startY).append(" ");
}
}
if (startY == endY) {
if (startX < endX) {
for (int i = startX; i <= endX; i++)
sb.append(i).append("x").append(startY).append(" ");
} else
for (int i = endX; i <= startX; i++)
sb.append(i).append("x").append(startY).append(" ");
}
if (startX > endX && startY > endY) {
int i = startX;
int j = startY;
while (i >= endX)
sb.append(i--).append("x").append(j--).append(" ");
} else if (startX > endX && startY < endY) {
int i = startX;
int j = startY;
while (i >= endX)
sb.append(i--).append("x").append(j++).append(" ");
} else if (startX < endX && startY > endY) {
int i = startX;
int j = startY;
while (i >= endX)
sb.append(i++).append("x").append(j--).append(" ");
} else if (startX < endX && startY < endY) {
int i = startX;
int j = startY;
while (i >= endX)
sb.append(i++).append("x").append(j++).append(" ");
}
return sb.toString();
}
来完成(在Ubuntu中你可以修改/etc/launchhd.conf
)。看here。但是,如果我没记错的话,这不适用于通过聚光灯打开应用程序。