Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/shell/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 为什么赢了';我的系统是否确认一个新的path环境变量?_Python_Environment Variables - Fatal编程技术网

Python 为什么赢了';我的系统是否确认一个新的path环境变量?

Python 为什么赢了';我的系统是否确认一个新的path环境变量?,python,environment-variables,Python,Environment Variables,我正在使用GUI方法(而不是setx)在windows 7上的%PATH%环境变量中设置目录。我的目标是使我放置在“D:\MPhil\python\My\u python\u modules”目录中的所有python脚本、模块和类都可以在命令行或其他python脚本中使用,但可以从任何目录调用(很像本地python模块可以从任何地方调用) 我经历了以下过程: '编辑系统环境变量->环境变量->将我的目录添加到%PATH%变量的开头' 现在看起来像这样 'D:\MPhil\Python\My_Py

我正在使用GUI方法(而不是setx)在windows 7上的%PATH%环境变量中设置目录。我的目标是使我放置在“D:\MPhil\python\My\u python\u modules”目录中的所有python脚本、模块和类都可以在命令行或其他python脚本中使用,但可以从任何目录调用(很像本地python模块可以从任何地方调用)

我经历了以下过程: '编辑系统环境变量->环境变量->将我的目录添加到%PATH%变量的开头'

现在看起来像这样

'D:\MPhil\Python\My_Python_Modules\;C:\Program Files (x86)\ActiveState Komodo IDE 8\;...'
但是,目录中包含的'Identify_Gene.py'脚本仍然不可调用(使用命令'python Identify_Gene.py',从随机目录调用)


有人知道我做错了什么吗?

您可以执行以下操作:

  • 添加到Windows环境varibale
    PATHEXT
    python脚本扩展:
    .PY

    set PATHEXT=%PATHEXT%;.PY

    (使用环境设置GUI使其永久化)

  • 在命令行中:注册该python扩展:

    assoc.py=Python.File

  • 在命令行中:将应用程序调用程序添加到扩展:

    ftype Python.File=\pythonw.exe“%%1”%%*

  • 下次您只需在命令行中按名称运行脚本,而不使用
    .py
    扩展名(如果您设置
    路径
    变量)

    另一个选项:您应该将脚本文件夹的路径添加到
    PYTHONPATH
    变量中,然后可以以以下形式调用脚本:

    python -m <script name>
    
    python-m
    
    您混淆了
    PATH
    环境变量和
    PYTHONPATH
    环境变量,前者是shell(
    cmd.exe
    )搜索命令的地方,后者初始化Python用于查找模块的
    sys.PATH
    变量

    你可以尝试两种方法(或多或少)做你想做的事:

    • Windows通常知道
      .py
      .pyw
      文件必须通过
      Python
      解释器执行。您可以预先设置将脚本放入
      路径的目录(就像您所做的那样),并直接调用脚本(而不是
      Python Identification_Gene.py
    Identify_Gene.py
    
    • 仅将包含python的目录放在路径中,并将包含脚本的目录放在路径中(如果不存在,可以在Windows下创建新的环境变量)。您可以将脚本作为模块调用:
    python-m识别_基因
    
    我已经按照您的说明进行了操作,但我看不出它是否有效,因为我的主要问题是设置PATH变量。我更新了第3条语句,其中您需要指定python interperter的路径,如果有效,我似乎已经成功地将目录添加到路径中,但它仍然不起作用。我可以问几个问题:1)我是将目录添加到整个文件夹中,还是只添加到我希望能够调用的文件中?2) 要从任何地方调用脚本,我只需使用通常的“python hello_world.py”命令,还是必须执行其他操作?因此,要从任何地方调用脚本,需要将包含脚本的文件夹添加到
    PYTHONPATH
    变量中,并使用
    python-m
    。如果您想使用
    PATH
    变量而不使用扩展名和
    python-m
    命令,那么您需要执行第一个解决方案(在Windows中建立python脚本关联的三个步骤)好的,因此我已从%PATH%中删除了目录,并创建了一个名为PYTHONPATH的新变量。PYTHONPATH现在包含我的目录(D:\MPhil\Python\my\u Python\u Modules),其中包含一个名为Identify\u Gene.py的文件,但是我不能用Python-m Identify\u Gene.py调用脚本。我还缺什么吗?ThanksTurns指出它是有效的,我唯一的问题是我需要重新启动命令行。谢谢你的帮助