Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
后端镜像
Pdm
提交
0a6346df
P
Pdm
项目概览
后端镜像
/
Pdm
通知
0
Star
0
Fork
0
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
DevOps
流水线
流水线任务
计划
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
P
Pdm
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
DevOps
DevOps
流水线
流水线任务
计划
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
流水线任务
提交
Issue看板
体验新版 GitCode,发现更多精彩内容 >>
未验证
提交
0a6346df
编写于
11月 20, 2020
作者:
F
Frost Ming
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
Create output dir if not exists
Close #173
上级
7cd0fd0a
变更
3
隐藏空白更改
内联
并排
Showing
3 changed file
with
20 addition
and
21 deletion
+20
-21
news/173.bugfix
news/173.bugfix
+1
-0
pdm/models/builders.py
pdm/models/builders.py
+17
-21
pdm/models/environment.py
pdm/models/environment.py
+2
-0
未找到文件。
news/173.bugfix
0 → 100644
浏览文件 @
0a6346df
Fix the build error that destination directory is not created automatically.
pdm/models/builders.py
浏览文件 @
0a6346df
...
...
@@ -166,10 +166,16 @@ class EnvBuilder:
src_dir
,
self
.
_backend
,
backend_path
=
self
.
_build_system
.
get
(
"backend-path"
),
runner
=
log_subprocesso
r
,
runner
=
self
.
subprocess_runne
r
,
python_executable
=
self
.
executable
,
)
def
subprocess_runner
(
self
,
cmd
,
cwd
=
None
,
extra_environ
=
None
):
env
=
self
.
_saved_env
.
copy
()
if
self
.
_saved_env
else
{}
if
extra_environ
:
env
.
update
(
extra_environ
)
return
log_subprocessor
(
cmd
,
cwd
,
extra_environ
=
env
)
def
_get_pip_command
(
self
)
->
List
[
str
]:
"""Get a pip command that has pip installed.
E.g: ['python', '-m', 'pip']
...
...
@@ -184,7 +190,7 @@ class EnvBuilder:
if
python_version
[
0
]
==
3
:
# Use the ensurepip to provision one.
try
:
log_subprocesso
r
(
self
.
subprocess_runne
r
(
[
self
.
executable
,
"-Im"
,
"ensurepip"
,
"--upgrade"
,
"--default-pip"
]
)
except
BuildError
:
...
...
@@ -202,29 +208,19 @@ class EnvBuilder:
paths
=
get_sys_config_paths
(
self
.
executable
,
vars
=
{
"base"
:
self
.
_path
,
"platbase"
:
self
.
_path
}
)
old_path
=
os
.
getenv
(
"PATH"
)
self
.
_saved_env
=
{
name
:
os
.
environ
.
get
(
name
,
None
)
for
name
in
(
"PATH"
,
"PYTHONNOUSERSITE"
,
"PYTHONPATH"
)
"PYTHONPATH"
:
paths
[
"purelib"
],
"PATH"
:
paths
[
"scripts"
]
if
not
old_path
else
os
.
pathsep
.
join
([
paths
[
"scripts"
],
old_path
]),
"PYTHONNOUSERSITE"
:
"1"
,
}
old_path
=
os
.
getenv
(
"PATH"
)
os
.
environ
.
update
(
{
"PYTHONPATH"
:
paths
[
"purelib"
],
"PATH"
:
paths
[
"scripts"
]
if
not
old_path
else
os
.
pathsep
.
join
([
paths
[
"scripts"
],
old_path
]),
"PYTHONNOUSERSITE"
:
"1"
,
}
)
stream
.
logger
.
debug
(
"Preparing isolated env for PEP 517 build..."
)
return
self
def
__exit__
(
self
,
*
args
):
for
key
,
value
in
self
.
_saved_env
.
items
():
if
value
is
None
:
del
os
.
environ
[
key
]
else
:
os
.
environ
[
key
]
=
value
self
.
_saved_env
=
None
shutil
.
rmtree
(
self
.
_path
,
ignore_errors
=
True
)
def
install
(
self
,
requirements
:
Iterable
[
str
])
->
None
:
...
...
@@ -243,7 +239,7 @@ class EnvBuilder:
"-r"
,
os
.
path
.
abspath
(
req_file
.
name
),
]
log_subprocesso
r
(
cmd
)
self
.
subprocess_runne
r
(
cmd
)
os
.
unlink
(
req_file
.
name
)
def
build_wheel
(
self
,
out_dir
:
str
)
->
str
:
...
...
@@ -269,6 +265,6 @@ class EnvBuilder:
self
.
install
([
"setuptools"
])
args
=
[
self
.
executable
,
"-c"
,
_SETUPTOOLS_SHIM
.
format
(
setup_py_path
)]
args
.
extend
([
"egg_info"
,
"--egg-base"
,
out_dir
])
log_subprocesso
r
(
args
,
cwd
=
self
.
src_dir
)
self
.
subprocess_runne
r
(
args
,
cwd
=
self
.
src_dir
)
filename
=
_find_egg_info
(
out_dir
)
return
os
.
path
.
join
(
out_dir
,
filename
)
pdm/models/environment.py
浏览文件 @
0a6346df
...
...
@@ -361,6 +361,8 @@ class Environment:
if
should_cache
else
kwargs
[
"build_dir"
]
)
if
not
os
.
path
.
exists
(
output_dir
):
os
.
makedirs
(
output_dir
,
exist_ok
=
True
)
ret
=
builder
.
build_wheel
(
output_dir
)
return
ret
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录