在PyCharm中控制PYTHONPATH排序,使源文件夹首先被搜索

2024-06-01 04:25:45 发布

您现在位置:Python中文网/ 问答频道 /正文

我创建了一个projectname包,并使用PyCharm调试其中的代码。 我还使用venv为包设置Python环境。我遵循以下标准包结构。在

.
├── NAME
│   ├── __init__.py
│   ├── arith.py
│   └── arith.py
├── bin
│   └── app.py
├── build
│   ├── bdist.macosx-10.11-intel
│   └── lib
│       └── NAME
│           ├── __init__.py
│           └── arith.py
├── dist
│   └── projectname-0.1-py2.7.egg
├── docs
├── requirements.txt
├── setup.py
└── tests
    ├── __init__.py
    └── arith_tests.py

然后,我把这个项目导入到PyCharm中。 在项目:sekelton,我将NAME/tests标记为源文件夹,并将build/dist标记为排除的文件夹。在

我还运行python setup.py install来构建生成的egg文件并将其安装到venv的site包目录中。在

enter image description here

问题是安装在site包中的egg文件首先被调用,PYTHONPATH显示在import sys; print sys.path

^{pr2}$

这很烦人,因为我不能用PyCharm调试代码,当我修改代码时,我不得不再次运行python setup.py install来更新egg文件。我可以通过从项目解释器设置中删除egg文件来避免这个问题,但是我认为更改顺序应该是更好的选择。在

enter image description here

如何更改PyCharm中PYTHONPATH的顺序,以便首先搜索本地源文件夹?在

编辑

当我试图从项目解释器设置中删除包时,PyCharm显示了一条错误消息,但这是误报,因为PyCharm成功地删除了egg文件,并更新了easy-安装.pth. 在


Tags: 文件项目代码namepybuild文件夹venv
1条回答
网友
1楼 · 发布于 2024-06-01 04:25:45

使用pip install -e NAME,将使指向名称目录的{},并更新{}。我认为这是比python setup.py更好的方法,并且解决了PYTHONPATH问题。在

skeleton> pip install -e .
Obtaining file:///python/structure/projects/skeleton
Requirement already satisfied (use  upgrade to upgrade): nose in /python/structure/projects/venv/lib/python2.7/site-packages (from projectname==0.1)
Installing collected packages: projectname
  Running setup.py develop for projectname
Successfully installed projectname

用这种方法,卵就不在Python体内了。在

^{pr2}$

更好的是,我们可以使用pip uninstall projectname删除包。在

pip uninstall projectname
Uninstalling projectname-0.1:

python/structure/projects/venv/lib/python2.7/site-packages/projectname.egg-link
Proceed (y/n)? y
    Successfully uninstalled projectname-0.1    

我从Installing Python packages from local file system folder with pip得到提示

相关问题 更多 >