Pycharm:错误“无法执行重构,函数不在源根目录下”

cclgggtu  于 2023-04-12  发布在  PyCharm
关注(0)|答案(3)|浏览(342)

我在windows 8上使用pycharm 4.0.4,我的项目结构如下:

my_django_project (pycharm content root)
-lib
-docs
-scripts (virtualenv)
-my_project (pycharm source root)
 -tempaltes
 -management
 -models.py
 -views.py
 etc....

pycharm项目解释器:

2.7.2 virualenv at c:\path\to\my_django_project

我试图在www.example.com文件中的类中执行更改签名重构和方法models.py。
使用上面的项目解释器设置,重命名重构工作正常,但是,更改签名会导致Cannot perform Refactoring. Function is not under the source root"
如果我将pycharm项目解释器更改为:

2.7.2 virualenv at c:\Python27\python.exe

所有的重构都能工作,但是,这不是我的虚拟环境。我做错了什么?为了重构而必须切换出虚拟环境似乎是错误的。
任何想法欢迎,谢谢!

hzbexzde

hzbexzde1#

试试这个:Settings -> Project Structure -> Add Content Root,然后选择你想要使用的文件夹。这修复了我的问题。

bkkx9g8r

bkkx9g8r2#

你的项目根目录是否在解释器路径列表中(Settings| Project Interpreter| Press Cogwheel| More| Show paths for the selected interpreter)?
如果是,则是以下已知问题https://youtrack.jetbrains.com/issue/PY-9285
你可以按照它的更新,见howto:http://intellij-support.jetbrains.com/entries/23368682

qyswt5oh

qyswt5oh3#

我在pycharm 2023.1(Build #PY-231.8109.197,构建于2023年3月29日)中使用的解决方案是将项目目录重命名为pyproject. toml中使用的包名称以外的名称。
例如,目录可以是'pj_package-name',而在pyproject.toml中我有name = 'package-name'
谢谢PyTony给了我正确的提示。

相关问题