标签: pythonpath

在 Visual Studio Code 中设置文件“launch.json”的 Python 路径

我使用 Visual Studio Code 已有几年了,我发现它是一个非常好的 IDE。我用 Python 编程的次数比任何其他语言都多。

令我困扰的是我没有抽出时间使用 IDE 的调试器(尽管它是一个功能)。

按调试播放按钮时出错:

Failed to launch the Python Process, please validate the path 'export PATH=$PATH:/Library/Frameworks/Python.framework/Versions/2.7/bin/python'
Run Code Online (Sandbox Code Playgroud)

在此输入图像描述

检查我的 PYTHONPATH:

在此输入图像描述

我的launch.json文件:

"configurations": [
    {
        "name": "Python",
        "type": "python",
        "request": "launch",
        "stopOnEntry": true,
        "pythonPath": "${config:python.pythonPath}",
        "program": "${file}",
        "cwd": "/workspace/h5-automation/",
        "env": {},
        "envFile": "${workspaceRoot}/.env",
        "debugOptions": [
            "WaitOnAbnormalExit",
            "WaitOnNormalExit",
            "RedirectOutput"
        ]
    }
Run Code Online (Sandbox Code Playgroud)

有什么想法/建议吗?

python configuration pythonpath visual-studio-code

9
推荐指数
1
解决办法
1万
查看次数

让setuptools/easy_install与PYTHONPATH很好地配合使用

为什么setuptools/easy_install .pth文件不适合PYTHONPATH,如何让它们很好地播放,并在sys.path中的那些.pth推送之前将目录保存在我的PYTHONPATH中?

我目前的问题是我为我们的项目创建了一个包,PyYAML和PyCrypto都是需求.

  install_requires=["PyYAML",
                    "pycrypto >= 2.3"]
Run Code Online (Sandbox Code Playgroud)

正如我们一直在开发的那样,我们已经使用pip在标准目录(/usr/lib64/python2.6/site-packages)中安装了PyYaml.我们在那里安装了旧版本的PyCrypto,然后发现我们需要更新的版本,我们在/opt/devtools/lib64/python2.6/site-packages下安装了它.在/ usr/lib64之前,我们已经将我们的PYTHONPATH设置为首先从/ opt读取.这一切在开发中都很好.当我们运行时,我们从/ opt获得PyCrypto 2.3,从/ usr/lib64 /获得PyYaml ....

但现在,当我尝试在virtualenv中安装时,当我运行时python setup.py develop,setuptools/distribute最终将/usr/lib64/python2.6/site-packages添加到easy-install.pth,但不是/ opt/devtools /lib64/python2.6/site-packages.它正在找到正确的版本,如输出中所示:

Using /home/s3447/projects/wsrs.git/emp_parsing
Searching for pycrypto==2.3
Best match: pycrypto 2.3
Adding pycrypto 2.3 to easy-install.pth file

Using /opt/wsrs-devtools/stow/pycrypto-2.3/lib64/python2.6/site-packages
Searching for PyYAML==3.10
Best match: PyYAML 3.10
Adding PyYAML 3.10 to easy-install.pth file
Run Code Online (Sandbox Code Playgroud)

但是不要在easy-install.pth中添加/ opt/.... (只有/ usr/lib64 ...并且我运行setup.py的目录被添加到路径中.)

最终的结果是,虽然我的setuptools认为它是成功的,但是当我运行我的代码时,easy-install.pth决定它比我更了解我想要的东西,在我的PYTHONPATH之前插入自己,我最终导入了错误的版本PyCrypto.

两个问题:

  1. 为什么setuptools与它添加到.pth文件的目录不一致?我希望安装两个目录或两个目录.

  2. 有没有办法让setuptools不试图覆盖我的PYTHONPATH?为什么这首先被认为是一个好主意?

python setuptools pythonpath

8
推荐指数
1
解决办法
1262
查看次数

升级版的scikit-learn包含在Enthought Canopy发行版中

我安装了EPD 7.3.1(现在称为Enthought Canopy),它带有scikit-learn v 0.11.我正在运行Ubuntu 12.04.我需要安装v 0.12的scikit-learn.

scikit-learn doc说克隆存储库,将scikit-learn目录添加到PYTHONPATH,然后构建扩展:python setup.py build_ext --inplace

问题是EPD是它自己封闭的世界(有多个scikit dirs):
./lib/python2.7/site-packages/scikits/
./lib/python2.7/site-packages/sklearn

然后是:
./EGG-INFO/scikit_learn/

我真的不想尝试,因为花了很长时间才把事情调到这一点.在这种情况下,我应该遵循scikit-learn的指示吗?

python pythonpath enthought scikit-learn canopy

8
推荐指数
1
解决办法
5559
查看次数

如何在Mac OS X上确定python模块搜索路径?

当导入非内置模块时,解释器将搜索给定的位置sys.path.sys.path从这些位置初始化(http://docs.python.org/library/sys.html#sys.path):

  1. 包含输入脚本(或当前目录)的目录
  2. PYTHONPATH
  3. 依赖于安装的默认值

虽然前两个来源是直截了当的,但任何人都可以解释第三个如何运作,以及影响它的可能性有多大?

虽然我对一般解决方案感兴趣,但我的具体问题是:

  • 我已经安装了32位Enthought分发版,然后是Scipy-Superpack.现在,兴奋的python试图导入numpy /Library/Python/2.7/,这是superpack安装它们的地方,而不是来自enthought网站包.
  • 一个wxPython与创建的应用程序py2app -A不具有相同的sys.path开始与应用程序时为python start_app.py.

python macos pythonpath sys.path

7
推荐指数
1
解决办法
1万
查看次数

有没有更好的方法来控制子进程的 PYTHONPATH?

我有一组必须动态修改 os.sys.path 的脚本。然后脚本启动一个子流程。理想情况下,子进程将与调用者具有相同的 os.sys.path。我想避免将它作为参数传递,因为这需要修改子流程脚本。

我有可以工作并满足我所有需求的代码。我想知道是否有更好的方法来做到这一点,以及这种方法是否存在任何缺陷。

主要流程

import os
import sys
import subprocess

#append a dir thats not on the sys path
sys.path.append('C:/pytest2/')

#convert the sys.path into env variable format
pypath = ''
for d in sys.path:
    pypath = pypath + d + ';'

#create a temp copy of the env variables
myenv = os.environ.copy()

#set PYTHONPATH to match this scripts sys.path
myenv['PYTHONPATH'] = pypath

#setup a python command to echo the sys.path
command = 'python C:/pytest/test_subprocess.py'

#launch the subprocess with …
Run Code Online (Sandbox Code Playgroud)

python subprocess pythonpath

7
推荐指数
1
解决办法
2952
查看次数

如何灵活更改 PYTHONPATH

要指定的Java类路径中,我使用-cp-classpath选项java。Python 中的等效选项是什么?

我知道我可以设置 OS 变量,PYTHONPATH但不应该有一个PYTHONPATH来统治它们。

我有时在 Eclipse 中使用 PyDev。它可以处理多个源目录。如何?

我经常有多个源目录。有时我将生产和测试代码分开。有时我有一个带有一些 Python 包的 Git 子模块。

python organization pythonpath

7
推荐指数
1
解决办法
4496
查看次数

PYTHONPATH在ubuntu 13.04中显示为空

当我这样做时,echo $PYTHONPATH 它不会返回任何东西.空行.

那是什么意思呢.我使用python,它的工作正常..所以什么是pythonpath的使用,这应该是在ubuntu 13.04的价值

/usr/bin/

要么

/usr/lib/

..或者是其他东西

在windows中我们有python27/source目录,我可以把外部源/驱动程序放在ubuntu中(或等效).

当我这样做user@user$ dpkg -L python2.7时显示

/.
/usr
/usr/lib
/usr/lib/python2.7
/usr/lib/python2.7/lib-dynload
/usr/lib/python2.7/lib2to3
/usr/lib/python2.7/lib2to3/fixer_util.py
....
/usr/lib/python2.7/lib2to3/Grammar.txt
/usr/share
/usr/share/doc
/usr/share/doc/python2.7
/usr/share/doc/python2.7/NEWS.gz
/usr/share/doc/python2.7/README.Debian
/usr/share/doc/python2.7/ACKS.gz
/usr/share/doc/python2.7/README.gz
/usr/share/doc/python2.7/copyright
/usr/share/lintian
/usr/share/lintian/overrides
/usr/share/lintian/overrides/python2.7
/usr/share/applications
/usr/share/applications/python2.7.desktop
/usr/share/menu
/usr/share/menu/python2.7
/usr/share/man
/usr/share/man/man1
/usr/share/man/man1/2to3-2.7.1.gz
/usr/share/man/man1/pdb2.7.1.gz
/usr/share/man/man1/pygettext2.7.1.gz
/usr/share/man/man1/pydoc2.7.1.gz
/usr/share/pixmaps
/usr/share/pixmaps/python2.7.xpm
/usr/bin
/usr/bin/2to3-2.7
/usr/bin/pygettext2.7
/usr/bin/pydoc2.7
/usr/share/doc/python2.7/changelog.gz
/usr/share/doc/python2.7/changelog.Debian.gz
/usr/bin/pdb2.7
Run Code Online (Sandbox Code Playgroud)

我已经从这个站点下载了chrome驱动程序并放入了给定的目录/usr/bin..但它不能正常工作.我应该把它放在哪里? https://code.google.com/p/selenium/wiki/ChromeDriver

ubuntu pythonpath python-2.7 robotframework selenium-webdriver

7
推荐指数
1
解决办法
2万
查看次数

如何在本地目录中安装python模块?--user 和导出 pythonpath 不起作用

我对 python 不太了解,但想在我没有 sudo 访问权限的服务器上的本地目录中安装一些 python 模块。

我首先进入所需的目录(不是根目录)并创建存储自定义模块所需的目录树

cd /root/example/sub-example
mkdir -p local/lib/python2.7/site-packages
Run Code Online (Sandbox Code Playgroud)

然后我将此本地路径导出到PYTHONPATH

export PYTHONPATH=$PYTHONPATH:/root/example/sub-example/local/lib/python2.7/site-packages
Run Code Online (Sandbox Code Playgroud)

然后我创建一个新的子目录来存储 python 包,同时解压

mkdir example-python-directory
cd example-python-directory
wget http://example-python-package
tar -xvf example-python-package.tar.gz
cd example-python-package
Run Code Online (Sandbox Code Playgroud)

最后,我运行带有该--user标志的 setup.py 脚本,尝试将其安装在我指定的/local目录中

python setup.py install --user
Run Code Online (Sandbox Code Playgroud)

问题是,我的/root/example/sub-example/local/lib/python2.7/site-packages目录中没有安装任何内容,而是我发现现在根目录中有一个新目录:/root/.local/lib/python2.7/site-packages

有办法防止这种情况吗?我觉得我缺乏 Python 知识导致我犯了一些对其他人来说可能很明显的愚蠢错误。谢谢您的帮助!

python linux module pythonpath

7
推荐指数
2
解决办法
2万
查看次数

在命令行上提供临时 PYTHONPATH?

我在想像

python3 my_script.py --pythonpath /path/to/some/necessary/modules

有这样的吗?我知道(我认为)PycharmPYTHONPATH在您使用它执行脚本时会临时修改;Pycharm 是如何做到的?

我想这样做的原因(你真的不需要阅读以下内容)

我想这样做的原因是我有一些代码通常需要在我自己的机器上运行(这很好,因为我使用 Pycharm 来运行它)但有时需要在远程服务器上运行(在命令行上),并且它不起作用,因为远程服务器没有PYTHONPATHPycharm 临时自动添加的s。我不想这样做,export PYTHONPATH=[...]因为经常更改它很麻烦(并且假设它确实需要经常更改)。

python pythonpath pycharm

7
推荐指数
1
解决办法
2874
查看次数

如何在vscode中设置环境变量进行调试?

我有一个相当大的 python/c++ 程序,运行如下:

  1. 。set_env.sh -选项 A -选项 B
  2. 蟒蛇运行.py

set_env.sh 脚本修改 PYTHONPATH 并执行所有类型的导出以指向正确的 C++ 程序。在终端中运行这两个命令时,效果很好,但是,使用调试器会破坏这一切。

我尝试在 preLaunchTask 中运行“.set_env.sh -option A -option B”,但调试器似乎看不到新的 PYTHONPATH。

如何使调试器运行 set_env 并考虑新的 PYTHONPATH ?

debugging pythonpath visual-studio-debugging visual-studio-code

7
推荐指数
2
解决办法
1万
查看次数