proyectos - python en visual studio 2017
¿Cómo puedo agregar una estructura de carpetas existente a mi proyecto de Visual Studio(herramientas de Python)? (3)
Esta pregunta es esencialmente la misma que estas:
¿Cómo agrego un árbol de directorios existente a un proyecto en Visual Studio? ¿Cómo "Agregar un elemento existente" una estructura de directorios completa en Visual Studio?
Excepto las soluciones no funcionan para mí.
Parece que otro usuario tuvo exactamente el mismo problema
http://pytools.codeplex.com/discussions/249455
Pero http://xkcd.com/979/ ha golpeado de nuevo.
Estoy usando Visual Studio 2010 con Python Tools para Visual Studio.
En este proyecto, los usuarios crean nuevas carpetas y códigos y los confirman en SVN. Otro usuario actualizará SVN y los nuevos archivos y carpetas se mostrarán en el explorador de Windows. Entonces, el usuario necesita una manera fácil de agregar estas carpetas y archivos a la solución.
Poner la solución en SVN para que las carpetas agregadas se puedan agregar a la solución antes de comprometerse no es una opción. La solución se controla en un área separada de la fuente.
Solución sugerida:
https://stackoverflow.com/a/392477/606660
No funcionará porque:
El botón "Mostrar todos los archivos" en el explorador de soluciones no aparece.
Solución sugerida:
https://stackoverflow.com/a/57778/606660
No funcionará porque:
Cuando arrastro la carpeta al panel del explorador de soluciones, la ubicación en la que se suelta la carpeta afecta a dónde está anidada la solución. Si se cae en la carpeta incorrecta, aparece como una carpeta con el nombre esperado y el contenido esperado. Esto está realmente cerca de lo que queremos, excepto que está en la carpeta incorrecta (ya que lo coloqué en la carpeta incorrecta, intencionalmente). Si la carpeta se arrastra a la ubicación correcta, aparece como un archivo con un signo de exclamación. Cuando haces doble clic en el "archivo" dice
"The item <folder name> does not exist in the project directory. It may have been moved, renamed, or deleted"
Creo que esto se debe a que VS intentará crear una copia de la carpeta en el directorio al que lo arrastra. Si muevo la carpeta fuera de mi proyecto por completo (por ejemplo, en el escritorio) y luego la arrastro al explorador de soluciones en la ubicación correcta, aparece como una carpeta en el proyecto. También se crea una copia de la carpeta en el disco en la ubicación especificada por la gota, con el mismo nombre y contenido.
Por lo tanto, parece que arrastrar y soltar una carpeta en el explorador de soluciones creará una copia de la carpeta en el disco en la ubicación que seleccionó en su solución cuando la soltó. Si esa ubicación ya tiene una carpeta con ese nombre, la carpeta se importa como un archivo.
Mi solución
Estoy usando PyCharm en su lugar, es mucho mejor.
Esto me funcionó en Visual Studio 2013, no sé si esto es aplicable para otras iteraciones de Visual Studio.
Después de instalar Python Tools para Visual Studio (PTVS), que encontré aquí
Abra el estudio visual, navegue a ARCHIVO-> NUEVO-> PROYECTO (o mantenga presionado Cntrl + shift + N)
En el nuevo cuadro de diálogo del proyecto, vaya a su directorio de proyecto de Python existente. Ingrese el nombre de su proyecto en el campo de nombre del proyecto. desmarque crear un directorio para la solución (si no desea crear un nuevo directorio de proyecto). Seleccione la opción "Desde el código Python existente" y haga clic en Aceptar.
En el asistente "crear un nuevo proyecto a partir de un código de Python existente", siga las indicaciones y realice todos los ajustes necesarios según sea necesario o simplemente haga clic en Finalizar.
Mostrar todos los archivos funciona. Mostrar todos los archivos está en el menú del proyecto.
Proyecto-> Mostrar todos los archivos
Si nada más funciona, puede agregar los archivos y carpetas manualmente en el .pyproj
.pyproj. El formato es simple:
<ItemGroup>
<Compile Include="File1.py" /> <!-- List of files relative to .pyproj folder -->
<Compile Include="test/file2.py" />
</ItemGroup>
<ItemGroup>
<Folder Include="test/" /> <!-- List of folders -->
</ItemGroup>
Puede agregar más elementos <ItemGroup>
si lo desea, y puede mezclar archivos y carpetas si lo desea.
Script para generar el XML:
import os
def visit(folder):
for fn in os.listdir(folder):
filename = os.path.join(folder, fn)
_, ext = os.path.splitext(fn)
if os.isdir(filename):
folders.append(filename)
visit(filename)
elif ext.lower() == ''.py'':
files.append(filename)
files = []
folders = []
visit(''.'')
print ''<ItemGroup>''
for fn in files:
print '' <Compile Include="'' + fn + ''"/>''
print ''</ItemGroup>''
if folders:
print ''<ItemGroup>''
for fn in folders:
print '' <Folder Include="'' + fn + ''//"/>''
print ''</ItemGroup>''